Board logo

标题: [文件操作] [已解决]批处理for指令如何使用带空格的全路径外部命令? [打印本页]

作者: hfxiang    时间: 2022-6-30 09:25     标题: [已解决]批处理for指令如何使用带空格的全路径外部命令?

如下2条for指令在命令行方式下运行,第1条指令正常运行,第2条指令报错(在批处理中执行效果一样)。求助于各位大神,for指令中如何使用带空格的全路径外部命令(如"C:\Program Files\jhead\jhead.exe"),谢谢

指令1
@for /f "usebackq tokens=*" %b in (`jhead.exe -c "D:\tmp\*.jp*g"`) do @(echo %b)
结果:
"D:\tmp\01.jpg" 1836x1032

指令2
@for /f "usebackq tokens=*" %b in (`"C:\Program Files\jhead\jhead.exe" -c "D:\tmp\*.jp*g"`) do @(echo %b)
报错:
'C:\Program' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

(jhead.exe应用下载地址: http://bcn.bathome.net/s/tool/index.html?key=jhead
作者: flashercs    时间: 2022-6-30 09:51

这是C:\Program Files\jhead\jhead.exe 文件不存在.
语法没有错误.
  1. @for /f "usebackq tokens=*" %b in (`"C:\Program Files\7-Zip\7z.exe" -?`) do @(echo %b)
复制代码

作者: hfxiang    时间: 2022-6-30 10:08

这是C:\Program Files\jhead\jhead.exe 文件不存在.
语法没有错误.
flashercs 发表于 2022-6-30 09:51



    jhead.exe 应用下载地址: http://bcn.bathome.net/s/tool/index.html?key=jhead
感谢回复。请从以上链接下载后测试,谢谢
作者: flashercs    时间: 2022-6-30 10:26

本帖最后由 flashercs 于 2022-6-30 10:28 编辑
  1. @for /f "usebackq tokens=*" %b in (`C:\"Program Files"\jhead\jhead.exe -c "D:\tmp\*.jp*g"`) do @(echo %b)
复制代码
这是jhead.exe的bug;
  1. pushd "c:\program files\jhead"
  2. @for /f "usebackq tokens=*" %b in (`jhead.exe -c "D:\tmp\*.jp*g"`) do @(echo %b)
复制代码

作者: hfxiang    时间: 2022-6-30 10:32

这是jhead.exe的bug;
flashercs 发表于 2022-6-30 10:26



    测试有效,感谢
作者: hfxiang    时间: 2022-8-15 15:03

本帖最后由 hfxiang 于 2022-8-15 15:04 编辑

从CrLf分享的
  1. for /f %%a in ('^;"%programfiles%\winrar\rar.exe" v "1.rar"') do echo %%a
复制代码
(详见 http://www.bathome.net/redirect. ... 3543&ptid=15748 )找到了另1个解决方案。




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2