Parsing 批处理递归for/f循环中的引号未解析
我有个问题。这有点难以解释,所以我只展示代码Parsing 批处理递归for/f循环中的引号未解析,parsing,batch-file,for-loop,recursion,escaping,Parsing,Batch File,For Loop,Recursion,Escaping,我有个问题。这有点难以解释,所以我只展示代码 for /r "%1" %%X in (*) do ( REM ... for %%Y in (some strings here) do ( REM ... for /f "delims=" %%Z in ('"%ProgramFiles%\7-Zip\7z" l -slt "%2"^|findstr /c:"Packed Size = "') do ( REM ... the
for /r "%1" %%X in (*) do (
REM ...
for %%Y in (some strings here) do (
REM ...
for /f "delims=" %%Z in ('"%ProgramFiles%\7-Zip\7z" l -slt "%2"^|findstr /c:"Packed Size = "') do (
REM ... the line above is causing the problem.
echo %%Z
)
)
REM ...
)
)
基本上,7-Zip路径周围的引号没有被正确解析,我尝试了几种不同的插入符号和引号组合,但它们都会引发各种错误。我知道,巴奇从来没有打算做这种事情,但有什么办法让它发挥作用吗
编辑:将7-zip可执行文件复制到批处理位置的文件夹(不带空格)中可以使其正常运行,因此确实如此,但我希望避免同一程序的多个副本。使用一些小技巧:
for /f "delims=" %%Z in ('call "%ProgramFiles%\7-Zip\7z" l -slt "%2"^|findstr /c:"Packed Size = "') do ( echo %%Z )
嘿,真不敢相信我没想过要试试这个!你没有回答我之前的一个问题吗?哦,结果它没有完全按照我想要的方式工作。对不起,我应该说得更具体些。
"%ProgramFiles%\7-Zip\7z" l -slt "%2"|for /f "delims=" %%Z in ('findstr /c:"Packed Size = "') do (
REM ... the line above is causing the problem.
echo %%Z
)