楼 主
[求助]FOR IN里的文件名有空格,需要如何处理一下?
发表于 2011-01-14 15:05 · IANA 局域网IP(Private-Use)
新手上路
★
积分 11 发帖 11 注册 2010-01-18 11:02 UID 158906 性别 男
状态 离线
比如:
for /f "delims=," %%a in (marry doc.txt)...
但因为文件名中含有空格,总是读成文件名是“marry”,如果加上引号,则语句的用意也改变了
该如何处理呢?
谢谢!
第 2 楼
发表于 2011-01-14 15:21 · 中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039 发帖 897 注册 2009-03-01 15:34 UID 140302 性别 男 来自 在地狱中仰望天堂
状态 离线
for /f "usebackq delims=," %%a in ("marry doc.txt")...
第 3 楼
发表于 2011-01-14 15:23 · IANA 局域网IP(Private-Use)
新手上路
★
积分 11 发帖 11 注册 2010-01-18 11:02 UID 158906 性别 男
状态 离线
Originally posted by Hanyeguxing at 2011-1-14 15:21:
for /f "usebackq delims=," %%a in ("marry doc.txt")...
这个是不行的,这个语法的意思成为,仅对“marry doc.txt” 字串进行分列处理
第 4 楼
发表于 2011-01-14 15:48 · 中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039 发帖 897 注册 2009-03-01 15:34 UID 140302 性别 男 来自 在地狱中仰望天堂
状态 离线
第 5 楼
发表于 2011-01-14 16:00 · IANA 局域网IP(Private-Use)
新手上路
★
积分 11 发帖 11 注册 2010-01-18 11:02 UID 158906 性别 男
状态 离线
Originally posted by Hanyeguxing at 2011-1-14 15:48:
你没看到关键字里有 usebackq 啊?
你有运行通过的例子吗?
usebackq的作用,据我的理解是引起一个命令行,此处应该不是问题的关键;
另,我实际的代码里是实验过的,只是刚才简单描述时忘了说明了。
第 6 楼
发表于 2011-01-14 16:07 · IANA 局域网IP(Private-Use)
新手上路
★
积分 11 发帖 11 注册 2010-01-18 11:02 UID 158906 性别 男
状态 离线
Originally posted by xilianghe at 2011-1-14 15:05:
比如:
for /f "delims=," %%a in (marry doc.txt)...
但因为文件名中含有空格,总是读成文件名是“marry”,如果加上引号,则语句的用意也改变了
该如何处理呢?
谢谢!
又是自己来解答,但只是一个迂回的方法
SET NAME=marry doc.txt
SET NAMEWITHQUOT="!NAME!"
for /f "delims=," %%a in (!NAMEWITHQUOT!)...
试验通过
第 7 楼
发表于 2011-01-14 16:31 · 中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039 发帖 897 注册 2009-03-01 15:34 UID 140302 性别 男 来自 在地狱中仰望天堂
状态 离线
usebackq
指定可以使用引号引用 filenameset 中的文件名称
for /F {%% | %}variable in (filenameset) do command
for /F {%% | %}variable in ("LiteralString") do command
for /F {%% | %}variable in ('command') do command
filenameset 参数指定一个或多个文件名称。在继续到 filenameset 中的下一个文件之前,每个文件都会被打开、读取和处理。要覆盖默认解析行为,指定 "ParsingKeywords"。这是一个引用字符串,它包含一个或多个关键字以指定不同的解析选项。
如果使用 usebackq 选项,请使用如下语法之一:
for /F {%% | %}variable in ("filenameset") do command
for /F {%% | %}variable in ('LiteralString') do command
for /F {%% | %}variable in (`command`) do command
[ Last edited by Hanyeguxing on 2011-1-14 at 16:32 ]
第 8 楼
发表于 2011-01-14 17:37 · 中国 北京 联通
新手上路
★
积分 10 发帖 10 注册 2010-11-18 20:41 UID 177819 性别 男
状态 离线
Originally posted by xilianghe at 2011-1-14 16:00:
你有运行通过的例子吗?
usebackq的作用,据我的理解是引起一个命令行,此处应该不是问题的关键;
另,我实际的代码里是实验过的,只是刚才简单描述时忘了说明了。
usebackq,实验通过
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正