寫乙個簡單的批處理(bat)

2021-07-04 02:57:54 字數 2382 閱讀 5218

看了看以前寫的總結,發現有這樣的乙個批處理,還是挺有意思。拿出來分享一下。

1、    for /d %%i in (*) do (

2、 rem set _day=%%~ti

3、 cd %%i

4、 for %%j in (*) do (

5、 @echo j: %%j

6、 set file1=%~dp0%%i\%%j

7、 @echo ***: %~dp0%%i\%%j

8、 set file2=c:\text\%%i\%%j

9、 @echo yyy: c:\text\%%i\%%j

10、 echo file1 : %file1%

11、 echo file2 : %file2%

12、 rem set t1=%%~tj

13、 rem set t2=c:\text\%%i\%%~tj rem 當前目錄名

14、 rem echo t1:!t1!

15、 rem echo t2:!t2!

16、 call :deal "%~dp0%%i\%%j" "c:\text\%%i\%%j" & rem呼叫時間對比

17、 )

18、 cd ../

19、 echo i: %%i

20、 echo t: %%~ti

21、 )

22、 :deal

23、 rem if "%~t1"=="%~t2" (echo same)else echo different

24、 if "%~t1" gtr "%~t2" (

25、 pause

26、 echo copy

27、 copy %1 %2

28、 )

下面是分析:

第一行:乙個for迴圈,「/d」是只遍歷目錄,「%%i」是給「i」賦值,也就是迴圈的賦予「i」不同的資料夾的名稱,「in(*)」是代表預設是當前資料夾裡面所有子資料夾,do(…)裡面是要進行的處理,這裡要注意格式。

第二行:「望文生義」就是要進入到子資料夾裡面了。

第三行:這裡巢狀了乙個for迴圈,什麼意思??哈哈,看看第一行的解釋吧。

第四行:列印j的值,也就是子資料夾裡面的檔名,「echo」前面多了乙個「@」表示以下指令不需要在dos視窗顯示了。

第五行:設定乙個變數,並給它賦值,「%~dp0」是當前檔案路徑,拿file1的值知道了嗎,其實就是路徑+檔名。

第六行:列印。

第七行:估計第五行表示什麼你懂了,那咋們就繼續往下吧。

第九行:

第十行:

第十一行:

第十二到十五行:是注釋語句,「rem」當時是除錯用的。

第十六行:進行了乙個呼叫:「call」,其呼叫的是標示符為「:deal」下面的內容,傳遞進了兩個引數:"%~dp0%%i\%%j"跟"c:\text\%%i\%%j",其實也就是路勁+檔名,這樣一說,明了了吧,兩個要比較的檔案呢。

第二十四行:那我們就順便看看「:deal」裡面是什麼東東吧。乙個「if」,條件判斷語句:如果「%~t1」大於「%~t2」就執行括號裡面的內容。「gtr」是比較符,大於的意思,更多比較符的解釋可以檢視相關資料。而「%~t1」跟「%~t2」呢,根據我們上面陳述的程式的功能,無疑就是兩個檔案的修改時間了。這裡需要解釋一下,"%1"跟"%2"分別代表「call」語句中傳遞進來的兩個引數,而"%~t1"跟"%~t2"呢,就是獲取兩個引數的修改時間了。括號裡面值得一提的是「pause」語句,意思是「阻斷一下」,執行檔案是在dos視窗下看到的是「請按任意鍵繼續」。說到這裡,括號裡面的剩下內容應該看懂了吧。

第十八行:回來for迴圈中,這行的意思跟linux下是一樣的:跳到上一層目錄下。後面兩行的意思就不要解釋了,當時也是除錯用的。執行完這兩條語句,我們就重新給「%%i」賦值,這樣就可以達到了遍歷的目的了。

批處理 bat的簡單操作

最近使用了較多的bat的基本操作,簡單的記錄下,以備不時之需。也希望對看到此文章的朋友有所幫助。bat的使用,可以開啟cmd命令視窗,然後輸入對用的命令,然後使用 提示使用,例如 copy del a.txt 刪除命令 del a.txt del a 刪除a資料夾下的所有檔案,需要確認 del q ...

bat批處理檔案的乙個例子

qq.bat rem 關閉回顯,這樣只顯示bat檔案的命令,否則還會顯示回顯資訊,那樣很煩亂 echo off echo 你好 1 echo 你好 2 echo 你好 3 echo 你好 4 rem 注釋,呼叫ww.bat,call的功能,有返回 call ww.bat echo 你好 5 echo...

如何寫乙個bat批處理自動上傳檔案到FTP

密碼 password11 我想將本地d user list user.csv 檔案通過執行bat批處理自動上傳到ftp中的資料夾user下面 echo off echoopen10.80.138.16 ftp.up echo ftp admin ftp.up echo password11 ftp...