Board logo

标题: [文件操作] [已解决]批处理for语句获取带有空格的目录/路径里的程序的返回结果出错如何解决? [打印本页]

作者: freesoft00    时间: 2016-4-11 21:06     标题: [已解决]批处理for语句获取带有空格的目录/路径里的程序的返回结果出错如何解决?

本帖最后由 freesoft00 于 2016-4-11 23:40 编辑
  1. for /f "tokens=1 delims= " %%i in ('"E:\ff ff 好的\test\bcdedit.exe"^|findstr /iv "description"') do (
  2.         echo %%i
  3. )
复制代码
bcdedit在有空格的目录存放,执行的时候老是有错误。提示ff错误。
作者: gawk    时间: 2016-4-11 21:37

  1. set "path=E:\ff ff 好的\test;%path%"
  2. for /f "tokens=1" %%i in ('bcdedit.exe ^| findstr /i /v "description"') do (
  3.     echo,%%i
  4. )
复制代码

作者: WHY    时间: 2016-4-11 21:47

方案2:
  1. for /f %%i in ('"E:\ff ff 好的\test\bcdedit.exe" ^| findstr /i /v description') do (
  2.     echo,%%i
  3. )
复制代码
方案3:
  1. for /f %%i in ('^,"E:\ff ff 好的\test\bcdedit.exe" ^| findstr /i /v "description"') do (
  2.     echo,%%i
  3. )
复制代码

作者: freesoft00    时间: 2016-4-11 21:48

本帖最后由 freesoft00 于 2016-4-11 21:50 编辑

回复 2# gawk


    为什么你这样可以,而我那样就不行呢?
for()中中间的名称有空格的话不可以用双引号吗?
添加的path=E:\ff ff 好的\test这个环境变量是临时的吧?执行完成后就自动删除了对吗?
作者: pcl_test    时间: 2016-4-11 21:53

本帖最后由 pcl_test 于 2016-4-11 21:54 编辑
  1. for /f "tokens=1" %%i in ('E:\"ff ff 好的\test\bcdedit.exe"^|findstr /iv "description"') do echo %%i
复制代码

作者: freesoft00    时间: 2016-4-11 21:54

回复 3# WHY


    兄弟我想要前面的设定"tokens=1 delims= "
作者: WHY    时间: 2016-4-11 22:02

回复 6# freesoft00


    你自己加上吧。
"tokens=1 delims= " 是默认设定,加不加效果是一样的。
作者: freesoft00    时间: 2016-4-11 23:39

回复 7# WHY


    哦,好的,谢谢!




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