批處理(bat)學(xué)習(xí)的一些總結(jié)
echo 能找到我,就給你發(fā)糖
pause>nul)
::括號里的內(nèi)容被理解成一個語塊,運行其中的命令時不需從文件讀取,所以就算刪除自身仍可運行。
echo "test&pause|sort
::當(dāng)一行命令中存在奇數(shù)個雙引號時,將會轉(zhuǎn)義其后所有本行字符
for /f tokens^=2delims^=^" %%a in ("123"test"456") do echo %%a
::通過對特殊字符的轉(zhuǎn)義,在for中用雙引號當(dāng)分隔符
for /f tokens^=2delims^=^" %%a in (^"123"456") do echo %%a
set /p=^"""
::當(dāng)一組字符串中含有奇數(shù)個雙引號時經(jīng)常會出錯,解決方法是轉(zhuǎn)義其中的一個,保持有效的雙引號成對,可是引號對之內(nèi)無法用轉(zhuǎn)義符對其轉(zhuǎn)義,所以轉(zhuǎn)義符要放在引號對之外使用
set /a "1/(%random%%%2)"&&set com=||set com=/f "tokens=2"
for %com% %%a in ("123 234 345") do echo %%a
::假如隨機值為偶數(shù),則顯示指定字符串第二段,否則顯示整段。這里用變量來定制命令,會比常規(guī)辦法(一條if和一條命令對應(yīng))更靈活和省事,但是要注意的是,變量延遲是在解釋語塊之后進行,所以這里的%com%不能使用變量延遲。
set /a \test1=123,test2=234
(@echo off
for /f "tokens=1* delims==" %%a in ('set\') do echo %%b
)|sort
::sort對for命令的輸出進行排序,那個@echo off并非多余,因為通道之前的若是語塊(for、if或者被成對括號包起來的語句),該語塊中的內(nèi)容將會以cmd /c的形式運行,此時的回顯是打開的,而變量延遲則是默認(rèn)關(guān)閉的。
dir /ad 123\&&md234||rd 345&tree /f|more
::當(dāng)存在123文件夾時,創(chuàng)建234文件夾,否則刪除345文件夾,無論結(jié)果如何,接下來都會逐屏顯示當(dāng)前目錄樹。重點是管道命令、邏輯連接符的靈活運用
2、句柄的妙用
@echo off 2>nul 3>nul
這個命令不存在...
echo 錯誤回顯呢?
pause
::句柄備份,可用于屏蔽所有正確或錯誤回顯
cd.>1.txt 2>2.txt 3>3.txt 4>4.txt 5>5.txt 6>6.txt 7>7.txt 8>8.txt 9>9.txt
::用一個命令創(chuàng)建9個文件,效率自然提高了
@echo off
(for /r %%a in (*.*) do del /f /s "%%~nxa" 3>>"%%a") 2>nul 4>>%0
pause
::利用寫入句柄會占用文件的特性實現(xiàn)高效刪除重復(fù)文件
待續(xù)...
- 1. 批處理(bat)學(xué)習(xí)的一些總結(jié)
- 2. 為了噴mybatis我下載了mybatis源碼
- 3. 鐵匠給你一本技能書讓你第一次學(xué)習(xí)技能
- 4. 關(guān)于Aspjpeg簡例的學(xué)習(xí)分享
- 5. ASP學(xué)習(xí)之Cookie的基本使用技巧
- 6. ASP基本技巧學(xué)習(xí)分享
- 7. ASP中數(shù)據(jù)庫知識學(xué)習(xí)
- 8. 利用asp生成excel報表與打印的實例學(xué)習(xí)
- 9. 在學(xué)習(xí)ASP中必須認(rèn)識到的十一種數(shù)學(xué)函數(shù)
- 10. 分享學(xué)習(xí)asp動態(tài)include文件