示例
1. echo off
- When echo is turned off, the command prompt doesn't appear in the Command Prompt window. To display the command prompt again, type echo on.
- @echo off在批處理文件第一行,在整個bat 文件中生效
@echo off
rem HelloWorld.bat,this line need after @echo off to avoid show
set x = hello world
echo %x%
結(jié)果顯示
>HelloWorld.bat
hello world
2. for
- %%variable雙百分號表示變量,變量名區(qū)分大小寫不同于windows下文件名
- FOR %variable IN (set) DO command [command-parameters]
簡單示例
@echo off
rem example 1
for %%i in (*.bat) do @echo %%i
for 擴展命令
- 指定與目錄名匹配,而不與文件名匹配
FOR /D %variable IN (set) DO command [command-parameters] - 以 [drive:]path 為根的目錄樹,指向每個目錄
FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters] - 以增量形式從開始到結(jié)束的一個數(shù)字序列
FOR /L %variable IN (start,step,end) DO command [command-parameters]
因此,(1,1,5) 將產(chǎn)生序列 1 2 3 4 5,(5,-1,1) 將產(chǎn)生
序列 (5 4 3 2 1)。
@echo off
for /L %%i in (1,1,5) do @echo %%i
>test_for_l.bat
1
2
3
4
5
- 遍歷文件 /F
FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]
FOR /F ["options"] %variable IN ("string") DO command [command-parameters]
FOR /F ["options"] %variable IN ('command') DO command [command-parameters]
@echo off
FOR /F "eol=; tokens=1,2,* delims=," %%i in (test_for_f.txt) do @echo %%i %%j %%k
line2 bb
line3 cc dd
test_for_f.txt內(nèi)容
;line1,aa
line2,bb
line3,cc,dd
- eol=c - 指一個行注釋字符的結(jié)尾(就一個)
- skip=n - 指在文件開始時忽略的行數(shù)。
- delims=xxx - 指分隔符集。這個替換了空格和跳格鍵的默認分隔符集。
- tokens=x,y,m-n - 指每行的哪一個符號被傳遞到每個迭代的 for 本身
參考資料
- Windows commands
https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/windows-commands - 常用DOS網(wǎng)絡(luò)命令
https://www.cnblogs.com/liuzhengliang/p/8617083.html