标题: [求助]FOR IN里的文件名有空格,需要如何处理一下?
[打印本页]
作者: xilianghe
时间: 2011-1-14 15:05
标题: [求助]FOR IN里的文件名有空格,需要如何处理一下?
比如:
for /f "delims=," %%a in (marry doc.txt)...
但因为文件名中含有空格,总是读成文件名是“marry”,如果加上引号,则语句的用意也改变了
该如何处理呢?
谢谢!
作者: Hanyeguxing
时间: 2011-1-14 15:21
for /f "usebackq delims=," %%a in ("marry doc.txt")...
作者: xilianghe
时间: 2011-1-14 15:23
Quote: |
Originally posted by Hanyeguxing at 2011-1-14 15:21:
for /f "usebackq delims=," %%a in ("marry doc.txt")... |
|
这个是不行的,这个语法的意思成为,仅对“marry doc.txt” 字串进行分列处理
作者: Hanyeguxing
时间: 2011-1-14 15:48
你没看到关键字里有 usebackq 啊?
作者: xilianghe
时间: 2011-1-14 16:00
Quote: |
Originally posted by Hanyeguxing at 2011-1-14 15:48:
你没看到关键字里有 usebackq 啊? |
|
你有运行通过的例子吗?
usebackq的作用,据我的理解是引起一个命令行,此处应该不是问题的关键;
另,我实际的代码里是实验过的,只是刚才简单描述时忘了说明了。
作者: xilianghe
时间: 2011-1-14 16:07
Quote: |
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!)...
试验通过
作者: Hanyeguxing
时间: 2011-1-14 16:31
usebackq
指定可以使用引号引用 filenameset 中的文件名称
for /F ["ParsingKeywords"] {%% | %}variable in (filenameset) do command [CommandLineOptions]
for /F ["ParsingKeywords"] {%% | %}variable in ("LiteralString") do command [CommandLineOptions]
for /F ["ParsingKeywords"] {%% | %}variable in ('command') do command [CommandLineOptions]
filenameset 参数指定一个或多个文件名称。在继续到 filenameset 中的下一个文件之前,每个文件都会被打开、读取和处理。要覆盖默认解析行为,指定 "ParsingKeywords"。这是一个引用字符串,它包含一个或多个关键字以指定不同的解析选项。
如果使用 usebackq 选项,请使用如下语法之一:
for /F ["usebackqParsingKeywords"] {%% | %}variable in ("filenameset") do command [CommandLineOptions]
for /F ["usebackqParsingKeywords"] {%% | %}variable in ('LiteralString') do command [CommandLineOptions]
for /F ["usebackqParsingKeywords"] {%% | %}variable in (`command`) do command [CommandLineOptions]
[
Last edited by Hanyeguxing on 2011-1-14 at 16:32 ]
作者: eminjin
时间: 2011-1-14 17:37
Quote: |
Originally posted by xilianghe at 2011-1-14 16:00:
你有运行通过的例子吗?
usebackq的作用,据我的理解是引起一个命令行,此处应该不是问题的关键;
另,我实际的代码里是实验过的,只是刚才简单描述时忘了说明了。 |
|
usebackq,实验通过