2013-02-19 128 views
2

我想看看我可以如何在windows批處理中使用或退出管道,就像在Unix shell中一樣。假設我有這個:在Windows批處理管道反引號

FOR /F "usebackq delims=" %i IN (`date /t`) DO @set TODAY=%i 
echo %TODAY% 

這會給我日期在TODAY變量。但我想有這個1或更多的管道工作:

FOR /F "usebackq delims=" %i IN (`date /t | cut -c 1-3`) DO @set TODAY=%i 

cmd.exe抱怨這樣的錯誤我想我需要一個轉義機制?

| was unexpected at this time. 

那麼,這是可行的嗎?怎麼樣?請注意,我有完整的GNU coreutils和PATH中的大多數好東西,所以我可以使用剪切作爲示例。

+0

我想我會感到震驚如果真的能做到的管道。在* nix shell中,這些東西都是模塊化的構建塊,但是在cmd.exe中,所有東西都只是一個贅肉。反向工作* cmd.exe中的任何地方*其他? – 2013-02-19 04:15:51

+0

這只是一個逃避問題。我不知道是否反向工作。在cmd.exe中可能只有在FOR中才能正常工作:) – MeaCulpa 2013-02-19 06:30:19

回答

4

轉義字符是^

下面是命令,set最後由echo取代,以使它非常友好。

FOR /F "usebackq delims=" %i IN (`date /t ^| cut -c 1-3`) DO @echo TODAY=%i 
TODAY=18/ 

(因人而異,我有約會法文場所)

date /t 
18/02/2013 
+1

感謝您的信息! – MeaCulpa 2013-02-19 06:20:03

+1

哇!我正在寫這篇文章。 – 2013-02-19 07:35:58