找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 35021|回复: 5

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

[复制链接]
发表于 2018-6-8 13:29:56 | 显示全部楼层 |阅读模式
问题是这样的:
我有一个“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 如何处理文件名中带有空格的文件

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2018-6-8 13:51:33 | 显示全部楼层
本帖最后由 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技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

发表于 2018-6-8 14:44:32 | 显示全部楼层
  1. for /f %%i in ('type "a b.txt"') do echo %%i
复制代码
 楼主| 发表于 2018-6-8 15:45:57 | 显示全部楼层
回复 2# yhcfsr
非常感谢,之前为了办公方便,自学了批处理,在看系统自带关于for的解释中有usebackq的说明,没看懂,因为够用了也没去深究,后来发现有批处理之家这么好网站,以为自己有些基础,就没去看一些基础教程的帖子。
经过您的提醒,以后有时间我会去看看这些基础教程的帖子,补补底子。当然可能有些遗漏,希望您和各位高手多多包涵,大家一起进步吧!
 楼主| 发表于 2018-6-8 15:46:46 | 显示全部楼层
回复 3# Batcher

很感谢,您的方法很有技巧性,学习了!
发表于 2018-6-8 17:31:11 | 显示全部楼层
回复 4# dizimotong


    推荐看看这个 http://bbs.bathome.net/thread-31727-1-1.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 01:21 , Processed in 0.029039 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表