for /f "delims=" %%a in ('"%systemRoot%\system32\find.exe" /?') do @echo %%a
是的,上一行工作正常。没有太大的作用,但有效。但是,试图写一个批处理文件来回答另一个问题,我面对像windows cmd:带有带引用参数的带引号的命令的for/f问题
for /f %%a in ('"%systemRoot%\system32\find.exe" /c /v "" ^< "c:\something.txt"') do @echo %%a
for /f %%a in ('"%systemRoot%\system32\find.exe" /c /v "" "c:\something.txt"') do @echo %%a
无论是以前行返回The filename, directory name, or volume label syntax is incorrect
for /f %%a in ('"%systemRoot%\system32\find.exe" /c /v "" ^< c:\something.txt' ) do @echo %%a
for /f %%a in ('"%systemRoot%\system32\find.exe" /c /v "" c:\something.txt' ) do @echo %%a
无论是以前行返回The system cannot find the file specified
我已经无法使其工作,既没有引用报价,也没有将它们加倍,在反斜杠前改为单引号以反引号,并在for
命令中设置相应选项,所有combinati我尝试失败。
如果要运行的命令被引用并且需要带引号的参数,则失败。
是的,我知道引号surounding不需要的find
,如果删除,任何先前的四大行就可以了(忽略输出,delims,代币)
但在情况下报价完全需要围绕命令(并且我知道8dot3name
行为被禁用的系统),有什么方法可以使其工作?我在这里错过了什么?
+1当然!!我忘了!该命令在新的cmd实例内运行。谢谢。我无法看到这一点。在这种情况下,第二个选项(路径)被丢弃,因为原始问题似乎与干扰执行的非本地'find'命令有关。 –
为了避免扰乱命令中的引用行为:'in('^“”some cmd.exe“”some | arg“^”')''这可能是一个好主意。另外,我不记得任何细节,但我相信MS文档中有一个小小的缺陷 - 我不认为它完全描述了报价行为。 – dbenham