全相对路径,假设程序 test.exe,用法 test.exe filename.bmp
对目录下所有 bmp 文件执行上述命令:
for %a in (*.bmp) do test.exe %a
问题:
当文件名含有 1 个或多个空格时,如 file name.bmp ,出错。
查看原因每次循环运行命令时候*匹配的文件名没有被“”扩进去,程序以空格为界定确定 argv ,上述单条例子变成
test.exe file name.bmp 所以报错
直接 cmd 下:
test.exe ” file name.bmp “ 无问题
尝试过各种添加、参数并未成功。
想实现的目的:
有无办法让 for %a in (*.bmp) do test.exe %a 中的*.bmp 每次匹配到的文件名加到“”中去(试过“*.bmp ”是没用的)
目前的解决方案:
forfiles /M *.bmp /C "cmd /c test.exe @
file"
forfiles 命令中的 @
file 返回的文件名是含“”的
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/290343
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.