【发布时间】:2017-03-02 04:28:07
【问题描述】:
for /f "delims=" %%a in ('"%systemRoot%\system32\find.exe" /?') do @echo %%a
是的,上一行有效。没有多大用处,但有效。但是尝试编写一个批处理文件来回答另一个问题,我遇到了类似
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 命令中设置相应的选项,我尝试的所有组合都失败了。
如果要运行的命令被引用并且它需要引用的参数,它会失败。
是的,我知道 find 周围的引号是不需要的,如果删除,前四行中的任何一行都可以工作(忽略输出、分隔符、标记)
但是在真正需要命令周围的引号的情况下(并且我知道8dot3name 行为被禁用的系统),有没有办法让它工作?我在这里错过了什么?
【问题讨论】:
标签: windows batch-file cmd