でループのために長いfilenamedコマンドを引用は:リンクされたバッチファイル
Best free resource for learning advanced batch-file usage?
Dealing with quotes in Windows batch scripts
これは、これらのしゃくにさわる引用課題の一つであるように思われます。このプログラム例では、
@echo off
set wmicpath=%windir%\System32\wbem\wmic.exe
for /f "usebackq" %%a in (`%wmicpath% COMPUTERSYSTEM GET SystemType ^| findstr /I "x64"`) do (
echo %%a
)
プログラムは正常に動作します。 wmicpathを引用しようとしない限り。長いパス名が含まれていることを想像してみてください。それからあなたはそれを引用する必要があります。しかし、私はそれを働かせることはできません。
for /f "usebackq" %%a in (`"%wmicpath%" COMPUTERSYSTEM GET SystemType ^| findstr /I "x64"`) do (
をが、これは、この場合と同様に
for /f "usebackq" %%a in (`"%wmicpath%" COMPUTERSYSTEM GET SystemType ^| findstr /I x64`) do (
!:作品:これは失敗し
for /f "usebackq" %%a in (`"%wmicpath%" COMPUTERSYSTEM GET SystemType`) do (
をするためのコマンドで引用符をマッチングについては本当に奇妙な何かがあります。あなたは他の場所で引用を始めない限り、コマンドを引用することができます...
それは可能ですか?私は様々なポイントで脱出しようとしたが、引用符が含まれているとき、私はエスケープのルールについてはよく分からない...
編集:私はこのリンクは問題かもしれないと思う(すなわち:それはバグです):Pipe in for loop breaks double quoted variables
優秀!ありがとう。私は昨夜午前1時ごろに自分自身を見つけましたが、なぜ、どこに文書化されたのかが分かりませんでしたが、バグだと思っていましたが、あなたが言うように、最初と最後の二重引用符に一致しています。 – carveone