【发布时间】:2013-02-19 03:55:59
【问题描述】:
我想看看如何在 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 作为示例。
【问题讨论】:
-
我想如果 FOR 真的可以做管道,我会感到震惊。在 nix shell 中,这些东西是模块化的构建块,但在 cmd.exe 中,一切都只是堆积起来的一个疣。反引号在 cmd.exe 的其他任何地方都可以工作吗?
-
这只是一个逃生问题。我不知道反引号是否适用于 FOR。在 cmd.exe 中可能只有 FOR :)
标签: windows shell batch-file