Batch file 批处理脚本以打开文本文件

Batch file 批处理脚本以打开文本文件,batch-file,Batch File,我有一个批处理脚本来读取文本文件。如果文件名不包含特殊字符,它可以正常工作,但如果文件名包含特殊字符,它将失败 Ex文件名:localhost\u access\u log.2013-03-08 代码: 请帮助我如何阅读此类文件。在命令行键入帮助,以获取for命令的文档(我承认这很难阅读),您可以在大约一半的时间内完成以下操作: For file names that contain spaces, you need to quote the filenames with double quot

我有一个批处理脚本来读取文本文件。如果文件名不包含特殊字符,它可以正常工作,但如果文件名包含特殊字符,它将失败

Ex文件名:
localhost\u access\u log.2013-03-08

代码:


请帮助我如何阅读此类文件。

在命令行键入
帮助,以获取for命令的文档(我承认这很难阅读),您可以在大约一半的时间内完成以下操作:

For file names that contain spaces, you need to quote the filenames with
double quotes.  In order to use double quotes in this manner, you also
need to use the usebackq option, otherwise the double quotes will be
interpreted as defining a literal string to parse.
因此,您的代码应更改为:

for /f "usebackq skip=%* tokens=*" %%b in ("Y:\Program Files\Apache Software Foundation\Tomcat 7.0\logs\localhost_access_log.2013-03-08.txt") do (
    echo "Data Copied"
)

将文件名放在引号中“…”。否则,带空格的文件名将无法正确识别。。。。并添加
usebackq
选项。您需要哪些特殊字符?(nota bene:对我来说,这将是Unicode之外的字符,这将是非常特殊的)@Joey:我相信OP指的是路径中的空格。user2148537:如果我错了,那么编辑你的问题,向我们显示其中一个失败的名字,并告诉我们错误消息是什么。
for /f "usebackq skip=%* tokens=*" %%b in ("Y:\Program Files\Apache Software Foundation\Tomcat 7.0\logs\localhost_access_log.2013-03-08.txt") do (
    echo "Data Copied"
)