bat批處理筆記

變量

1.CMD窗口變量,變量名必須用單%引用(即:%variable)

外部變量,是系統制定的,只有9個,專門保存外部參數的,就是運行批處理時加的參數。只有 %1 %2 %3 %4 ...... %9。

在bat內直接

set  i=%1

 

copy.bat c G

2.bat文件批處理腳本中,變量名必須用雙%引用(即:%%variable)

for循環變量爲%%a

set  i=%1
set  j=%2

3.%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 提示用戶輸入



//然後窗口提示 輸入:
//輸入完後 按回車
set /p a=輸入:

set /a a=2*%b%


//先顯示promptstring,再把"<"管道號右邊的1.txt文件中從第一個字符開始直到碰到回車符的內容賦值給變量a (通常表現爲第一行)
set /p a=promptstring<1.txt

刪除文件和文件夾

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=%1

find "***" %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

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章