3

Unixシェルと同じように、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.

それで、これは実行可能ですか?どのように?PATH に完全な gnu coreutils とほとんどの機能があるため、例としてカットを使用できることに注意してください。

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 に答える