3

我想看看如何在 Windows 批处理中使用或转义管道,就像在 Unix shell 中一样。假设我有这个:

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.

那么,这可行吗?如何?请注意,我在 PATH 中有完整的 gnu coreutils 和大多数好东西,所以我可以使用 cut 作为示例。

4

1 回答 1

6

转义字符是^.

这是命令,最后set被替换echo为使其非常友好。

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

(YMMV,我的日期是法语语言环境)

date /t
18/02/2013
于 2013-02-19T04:22:02.773 回答