• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:コマンドプロンプトのcallと遅延展開)

コマンドプロンプトのcallと遅延展開

このQ&Aのポイント
  • コマンドプロンプトのcallと遅延展開について疑問があります。
  • バッチスクリプトでcallと遅延展開を使用すると、一部の出力がなくなる現象が発生します。
  • callはコマンドラインを2度解析するため、変数の展開が正常に行われないことがあります。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.1

理由はよくわからないのですが、call 引数に""に囲まれない | とその後に何かあるとcall命令が実行されないようです。 call echo 2:!aaa! は、call実行の時点では、 call echo 2:XXX|cat となるので、callの第2引数は「2:XXX|cat」で、前述のようにこの行全体が無視されてしまいます。これは、遅延展開とか関係なく、下記でも確認できます。 SUBが表示されないだけでなく、FILE も出来ませんので表示が闇に消えているだけじゃ無くてcall先に飛んでないようです。 call :sub ^| more echo END goto :EOF :sub echo SUB echo TEST > FILE もちろん、| をエスケープせずに call :sub | more だとcallの結果をパイプしますが。 ところで、やりたいことは何ですかね?

関連するQ&A