标题: [文件操作] 【已解决】批处理 for /f 如何处理文件名中带有空格的文件 [打印本页]
作者: dizimotong 时间: 2018-6-8 13:29 标题: 【已解决】批处理 for /f 如何处理文件名中带有空格的文件
问题是这样的:
我有一个“a b.txt“”的文件,注意a和b有一个空格,双引号我自己加的,实际没有双引号的。我现在要用for /f 处理该文件,使用的代码如下:- for /f %%i in (a b.txt) do echo %%i
复制代码
运行该代码时,它会提示不存在a这个文件,也就是说程序无法处理文件名中带有空格的文件,很可能将空格当作分隔符什么的,结果把a当作一个单独的文件
于是,我就想试着用双引号将文件名括进来,因为之前遇到过文件名为空格的文件问题就是这样处理的,代码如下:- for /f %%i in (“a b.txt”) do echo %%i
复制代码
当我发现程序将"a b.txt"当作字符串了,所以我特地看了一下关于for 的说明,如下图:
很明显对于加双引号会被当成字符串,而加单引号则会被当成命令。
所以,我想请教高手for /f 如何处理文件名中带有空格的文件
作者: yhcfsr 时间: 2018-6-8 13:51
本帖最后由 yhcfsr 于 2018-6-8 13:53 编辑
- for /f "usebackq delims=" %%a in ("a b.txt") do echo;%%a
复制代码
参考:http://www.bathome.net/thread-2189-1-1.html
要是这帖子没看,就别瞎捉摸了BAT了,否则100后也是小白.
作者: Batcher 时间: 2018-6-8 14:44
- for /f %%i in ('type "a b.txt"') do echo %%i
复制代码
作者: dizimotong 时间: 2018-6-8 15:45
回复 2# yhcfsr
非常感谢,之前为了办公方便,自学了批处理,在看系统自带关于for的解释中有usebackq的说明,没看懂,因为够用了也没去深究,后来发现有批处理之家这么好网站,以为自己有些基础,就没去看一些基础教程的帖子。
经过您的提醒,以后有时间我会去看看这些基础教程的帖子,补补底子。当然可能有些遗漏,希望您和各位高手多多包涵,大家一起进步吧!
作者: dizimotong 时间: 2018-6-8 15:46
回复 3# Batcher
很感谢,您的方法很有技巧性,学习了!
作者: Batcher 时间: 2018-6-8 17:31
回复 4# dizimotong
推荐看看这个 http://bbs.bathome.net/thread-31727-1-1.html
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |