簡體   English   中英

Windows命令提示符下的“ For”命令和“ findstr”

[英]“For” command and “findstr” in windows command prompt

在另一篇文章中,我發現此解決方案可將文件以ISO格式重命名為當前日期:

FOR /F %%A IN ('WMIC OS GET LocalDateTime ^| FINDSTR \.') DO @SET B=%%A
copy test.java %B:~0,4%-%B:~4,2%-%B:~6,2%.java

我了解這部分以外的所有內容:

 ^| FINDSTR \.

它有什么作用? 由於“ WMIC OS GET LocalDateTime”具有這種格式

LocalDateTime
20150223064808.538000+060

我假設它以某種方式限制了刺痛。 但是如何?

該行中發生了幾件事。

^是批處理的轉義字符。 在那里是為了使下一個字符不會中斷for循環。 | 是一個管道,它將左側的命令輸出發送到右側的命令。 FINDSTR搜索一個字符串,並返回找到的任何字符串。

這是有點復雜的地方: \\是findstr的轉義字符,它允許對下一個字符進行字面解釋。 . 只是一個時期,但是沒有前面的\\ ,這是一個單字符通配符(f.re會收取車費和火費,等等)

wmic os get localdatetime運行wmic並返回本地日期和時間,其輸出如下所示:

LocalDateTime
20150223010540.071000-300

當將其通過管道傳遞給findstr並告訴findstr返回包含單個句點的行時,您將獲得

20150223010540.071000-300

然后整個過程都在for /F循環中,這樣該命令的輸出可以存儲在變量中。

暫無
暫無

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

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