:引述長filenamed命令在for循環中鏈接的批處理文件
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