❶ cmd腳本詳解
REM 關閉回顯,並把cmd窗口背景色設為黑色,文字為淡綠色
@echo off & color 0a
REM 在窗口中顯示輸入提示,當被用戶輸入並回車後,把用戶輸入的內容賦到 ff 這個變數名上
set /p ff=輸入文件名:
REM cmd窗口標題顯示為指定內容
title 查找%ff%
REM 在窗口中顯示一個空行,並顯示輸入提示。不過此時因為使用到了<nul 參數,
REM 所以此提示不需要等待用戶輸入。這里的用處純粹就是起到顯示一句提示而已。
echo. & set /p=正在查找 <nul
REM 使用for列出括弧內的字元串
for %%i in (c d e f g h) do (
REM 判斷上面給定盤符是否存在。如果存在就執行下一步操作
if exist %%i:\(
REM 跳轉到對應的盤符分區中
cd /d %%i:\
REM 顯示輸入提示,這里只是起到一個顯示盤符的功能而已
set /p=%%i: <nul
REM 使用dir命令列出文件名為之前ff變數賦予的值的相關文件,
REM 並使用for命令進行循環執行後續操作
for /f "delims=" %%j in ('dir /b/a-d/s "%ff%" 2^>nul') do(
REM 顯示一個空行,並顯示一句指定的提示
echo. & echo 在%%~fj找到%ff%,准備啟動它,並退出本批處理...
REM 使用ping命令去ping 127.1這個地址三次。這樣的寫法就是實現等待3秒的效果,
REM 不過這種延時等待的效果可能會有誤差,
REM 如果是Vista及其以上的系統推薦使用timeout命令來實現延時等待。
ping -n 3 127.1>nul
REM 啟動找到的相關文件,並退出腳本
start "" "%%j" & exit/b
)
)
)
REM 顯示一個空行,並顯示一句指定的提示
echo, & echo 未發現 %ff% 按任意鍵退出...
REM 暫停腳本,
pause>nul
❷ Windows cmd(bat) 腳本簡介
命令提示符是在 操作系統 中,提示進行命令輸入的一種工作提示符。在不同的操作系統環境下,命令提示符各不相同。在 windows 環境下,命令行程序為 cmd.exe,微軟 Windows 系統基於 Windows 上的命令解釋程序,類似於微軟的 DOS 操作系統 。
四種文件類別
命令不區分大小寫
在 Windows 系統中,所有的文件夾或者文件名、環境變數、命令都是 不區分大小寫 。據說但是是為了兼容 DOS,才沒有區分大小寫,後續就一直不區分了。
查看 windows 版本
winver
打開注冊表
regedit
打開計算器
calc
打開繪圖
mspaint
打開記事本
notepad
打開寫字板
wordpad
打開控制面板
control
打開遠程桌面 (Microsoft terminal services client)
mstsc
打開或關閉 Windows 功能
optionalfeatures
服務管理
services.msc
系統配置
msconfig.exe
防火牆
firewall.cpl
卸載或更改程序
appwiz.cpl
打開計算機管理
compmgmt.msc
打開電源選項
powercfg.cpl
打開 internet 選項
inetcpl.cpl
系統屬性
sysdm.cpl
顯示設置
desk.cpl
證書管理
certmgr.msc
添加硬體
hdwwiz.exe
關機
shutdown
dir
cd
tree
顯示目錄結構
tree d: #顯示D盤的文件目錄結構
日期和時間
文件/文件夾的重命名
復制文件
刪除文件是不經過回收站
刪除空文件夾
rmdir(rd):刪除非空文件夾且需要進行確認
刪除非空文件夾且不需要進行確認
重命名文件或者文件夾。(盡管引號不是強制性的,但如果當前名稱或新名稱中都有空格)
清屏
cls
顯示文件內容
type
網址/域名 :檢查當前網址是否連通 (註:會返回當前網址對應的IP地址和網路狀態)
ping
方法一:使用 ↑↓ 箭頭上下翻看執行過的命令,此方式適宜執行命令較少的情況;
方法二:使用快捷鍵:
F7: 快捷鍵查看所有執行過的命令
F3:調出上一條執行過的命令,調出後直接回車即可執行;
F8:搜索命令歷史記錄,和↑向上箭頭類似。
F9:按編號選擇命令,來調出執行過的命令:
方法三:doskey /HISTORY 顯示保存在內存中的所有命令
可搭配 more、findstr 命令進行使用:
doskey /HISTORY | more
doskey /HISTORY | findstr dir
doskey /HISTORY > d:123.txt 重定向到文件
後綴一般存儲為 bat, cmd 格式的文件。
創建文件:建議右鍵-新建文本文檔。建議選擇 gbk 中文編碼,換行選擇 。示例中我將文件存儲為 hello.bat。
使用方法:雙擊使用或在命令提示符中鍵入文件名。
設置 cmd 窗口的標題
輸出到屏幕
將參數1,參數2 輸入到命令行
hello.bat aaa bbb
說明:
%0 批處理文件本身
%1 第一個參數
...
%9 第九個參數
pause 就是暫停命令
pause > null 的作用是同樣的,區別是不顯示「請按任意鍵繼續. . .」這些字,nul 相當於空設備。
定義變數,注意等號左右不能加空格。
在批處理中 > 和 < 為重定向符號,這就意味著我們不能用 > 來表示大於,< 表示小於,也就意味著不能用 >=、<=、<> 來表示大於等於、小於等於、不等於,還好,在批處理中用了其他的操作符代替它們,這在"if /?"中有說明:
引用內容 引用內容
1. &
順序執行多條命令,而不管命令是否執行成功
2. &&
順序執行多條命令,當碰到執行出錯的命令後將不執行後面的命令
如果找到了"ok"字樣,就顯示"成功",找不到就不顯示
3. ||
順序執行多條命令,當碰到執行正確的命令後將不執行後面的命令
如果找不到"ok"字樣,就顯示"不成功",找到了就不顯示
5. 輸出重定向命令
> 清除文件中原有的內容後再寫入
>> 追加內容到文件末尾,而不會清除原有的內容
6. 管道操作符 |
clip 將內容復制到剪切板
dir 組合 clip 的用法示例
start 可以打開文件夾,文件,網址等
if 關鍵字和語句
1、if [NOT]"參數" == "字元串"
2、if [NOT] exist 文件名 待執行的命令
3、if [NOT] errorlevel 數字 待執行的命令
如果返回碼大於或者等於(或者小於,使用NOT)指定的數字,則條件成立,運行命令,否則運行下一句。DOS 程序運行時都會返回一個數字給 DOS,稱為錯誤碼 errorlevel 或稱返回碼。默認值為 0,一般命令執行出錯會設 errorlevel 為1。數字取值范圍 0~255。判斷時值的排列順序應該由大到小,否則會出現非期望的結果。
示例1:if 搭配 exist 進行使用,用於判斷某文件是否存在
原來的環境變數後加上英文狀態下的分號和路徑
set PATH=%PATH%;C:UserszhangsanDocumentswinrar-x64-580
setx PATH "%PATH%;D:Program Files"
該語句表示添加到用戶環境變數, 設置後對當前窗口不生效, 後續窗口都生效了.
(建議執行一次, 防止多試重復添加, 該威力巨大.
目前不知道怎麼刪除單項環境變數, 只能採取重新賦值的方式)
鍵入 "SETX /?" 了解用法信息。
切記:每個指令之間必須以空格隔開,in 與 ( 之間有空格,do 與 ( 間也有空格,否則命令會無法成功執行
[ ]:表示此項指令為可選
[參數]:參數取值一共有四種: /d, /r, /l, /f,加上無參數,所以一共五種場景
無參:遍歷當前路徑的文件夾下的文件,但也可在(匹配符)中指定路徑
批處理腳本遍歷指定文件夾下的文件_RuncX的技術博客_51CTO博客
https://blog.51cto.com/runcx/2465152
C:Usersferder>echo %date%
2022/07/02 周六
C:Usersferder>echo %time%
20:19:37.09
因此
提取年 %date:~0,4% 表示從左向右指針向右偏0位,然後從指針偏移到的位置開始提取4位字元,結果是2014
提取月 %date:~5,2%
提取日 %date:~8,2%
同理提取時間的時分秒為 %time:~0,2%%time:~3,2%%time:~6,2%
實戰操作:
md %date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%
則是再當前目錄下創建一個空的文件夾。
DOS 批處理中的字元串處理詳解(字元串截取)
https://blog.csdn.net/xiaoding133/article/details/39253083