簡體   English   中英

Windows批處理腳本.bat循環

[英]windows batch script .bat for loop

我很難理解下面的代碼在做什么。

for /f "delims=:. tokens=1-4" %%t in ("%TIME: =0%") do (
        set FILENAME=event-%5-%%t%%u%%v%%w
    )

我知道這是一個for loop

/f =>我想這意味着目錄中的每個文件。

delims=:. =>我知道這意味着使用:作為分隔符。 不知道是什么. 手段。

tokens=1-4 =>看來這正在抓取目錄中的前四個文件

%%t =>不確定這是什么意思

("%TIME: =0%") =>不知道這意味着什么

因此,對於符合上述條件的每個文件,它都將執行以下操作:

set FILENAME=event-%5-%%t%%u%%v%%w =>我認為這意味着重命名每個文件。

我還不明白的是:

event-%5-%% t %% u %% v %% w =>我知道“事件”是名稱的一部分。 但是%5-%%t%%u%%v%%w是什么意思?

我知道這是一個for循環。 正確

/ f =>我想這意味着目錄中的每個文件。 不完全的。 /f是一種“多功能開關”-請參閱for /? 詳情

delims = :. =>我知道這意味着使用:作為分隔符。 不知道是什么。 手段。 它定義了:. 作為分隔符-字符串將在每個字符處分割

tokens = 1-4 =>似乎這是在目錄no中捕獲前四個文件,它捕獲了字符串的前四個令牌(由定義的delims分隔)

for /f循環將其分為四個標記: %%t是第一個,然后是字母: %%u%%v%%w

%% t =>不確定這是什么(第一個)令牌的變量名

(“%TIME:= 0%”)=>不知道這意味着它將字符串中的每個空格替換為零-請參閱set /? 詳情

因此,對於符合上述條件的每個文件,它都會執行此操作: 與此處的文件無關

設置FILENAME = event-%5-%%% t %% u %% v %% w =>我認為這意味着重命名每個文件。 不,它通過連接多個字符串來創建一個名為filename的變量

它的真正作用是:

%time%是一個內部變量,包含當前時間。 (注意,時間格式取決於本地設置-代碼片段假定格式為9:11:22.339之前有一個空格))。
%time: =0%替換了空格,結果為09:11:22.33

for /f循環將此字符串分成四個標記( %%t = 09%%u = 11%%v = 22%%w = 33

%5是第五個參數的批處理文件(讓我們假設,它是whatever

set FILENAME=event-%5-%%t%%u%%v%%wfilename變量設置為event-whatever-09112233

我建議將SS64標記為書簽並定期訪問。 您還可以通過使用/?執行每個命令來獲得幫助/? 開關( for /? set /?等)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM