[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 【已解决】批处理 for /f 如何处理文件名中带有空格的文件

问题是这样的:
我有一个“a b.txt“”的文件,注意a和b有一个空格,双引号我自己加的,实际没有双引号的。我现在要用for /f 处理该文件,使用的代码如下:
  1. for /f %%i in (a b.txt) do echo %%i
复制代码
运行该代码时,它会提示不存在a这个文件,也就是说程序无法处理文件名中带有空格的文件,很可能将空格当作分隔符什么的,结果把a当作一个单独的文件
于是,我就想试着用双引号将文件名括进来,因为之前遇到过文件名为空格的文件问题就是这样处理的,代码如下:
  1. for /f %%i in (“a b.txt”) do echo %%i
复制代码
当我发现程序将"a b.txt"当作字符串了,所以我特地看了一下关于for 的说明,如下图:

很明显对于加双引号会被当成字符串,而加单引号则会被当成命令。
所以,我想请教高手for /f 如何处理文件名中带有空格的文件
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

本帖最后由 yhcfsr 于 2018-6-8 13:53 编辑
  1. for /f "usebackq delims=" %%a in ("a b.txt") do echo;%%a
复制代码
参考:http://www.bathome.net/thread-2189-1-1.html
要是这帖子没看,就别瞎捉摸了BAT了,否则100后也是小白.
1

评分人数

QQ 33892006

TOP

  1. for /f %%i in ('type "a b.txt"') do echo %%i
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 2# yhcfsr
非常感谢,之前为了办公方便,自学了批处理,在看系统自带关于for的解释中有usebackq的说明,没看懂,因为够用了也没去深究,后来发现有批处理之家这么好网站,以为自己有些基础,就没去看一些基础教程的帖子。
经过您的提醒,以后有时间我会去看看这些基础教程的帖子,补补底子。当然可能有些遗漏,希望您和各位高手多多包涵,大家一起进步吧!

TOP

回复 3# Batcher

很感谢,您的方法很有技巧性,学习了!

TOP

回复 4# dizimotong


    推荐看看这个 http://bbs.bathome.net/thread-31727-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表