:引述长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