bat批处理笔记
變量
1.CMD窗口變量,變量名必須用單%引用(即:%variable)
外部變量,是系統制定的,只有9個,專門保存外部參數的,就是運行批處理時加的參數。只有?%1 %2 %3 %4 ...... %9。
在bat內直接
set ?i=%1
?
copy.bat c G2.bat文件批處理腳本中,變量名必須用雙%引用(即:%%variable)
for循環變量為%%a
set i=%1 set j=%23.%a%?這種形式 ,就是變量的引用
@echo off set a=123 echo %a%?%~1和%1有什么區別
%1就是表示批處理的第一個參數, %~1表示刪除參數外面的引號 比如有個批處理文件 test.bat 在cmd中輸入命令 test.bat "test" %1表示的是“test“。%~1表示的是test,沒有了雙引號?
變量輸入
set /a 執行數學計算
set /p 提示用戶輸入
刪除文件和文件夾
del /f /s /q c:\bat\copy_%x%_%i%%j%.bat //刪除文件 del /f /s /q C:\Wistron\DataSource\bat\*.txt //刪除所有txt文件rd /q /s %i%:\copy //刪除文件夾?
查詢文本內字符串
// %1 為cmd 內輸入的txt文件 set i=%1find "***" %i% if %errorlevel% equ 0 ( echo found "*****" echo fail > Copy.txt )if語句例子
if exist c:\bat ( echo "exist bat" )else ( md c:\bat )for例子
for /l %%a in (1 1 5) do ( if exist "c:\bat\copy_%x%_%i%%j%.bat" del /f /s /q c:\bat\copy_%x%_%i%%j%.bat )// /l 表示循環 // for /l %variable in (start,step,end)強烈建議查看->?參考https://www.cnblogs.com/Braveliu/p/5081087.html
xcopy
xcopy c:\bat\copy\*.* %i%:\copy /s /e兩文件找不同
findstr /vg:C:\bat\old.txt C:\bat\new.txt >C:\bat\diff.txt文件提取內容
for /f "tokens=2 delims= " %%i in (C:\bat\diff.txt) do echo %%i >C:\bat\diskNo.txt//txt文件內容以空格切割,選取第二個bat內執行bat
start c:\bat\copy_%%a_%i%%j%.bat // start會新開cmd窗口?
右邊去空格
:intercept if "%str:~-1%"==" " set "str=%str:~0,-1%"&goto intercept?
diskpart在bat文件用法
echo select disk %diskNo% > C:\bat\selectDisk.ps1 echo detail disk >> C:\bat\selectDisk.ps1 diskpart /s C:\bat\selectDisk.ps1> C:bat\detailNewDisk.txt?
^取消轉義 與 時間
Echo Date /T ^>^> c:\bat\copy_log_%i%%j%%x%.txt >> c:\bat\copy_%x%_%i%%j%.bat Echo Time /T ^>^> c:\bat\copy_log_%i%%j%%x%.txt >> c:\bat\copy_%x%_%i%%j%.bat?
?
?
?
總結
- 上一篇: django06: ORM示例2--ue
- 下一篇: bat批处理笔记(二)