【发布时间】:2017-02-15 03:25:42
【问题描述】:
我有一个目录 c:\test 自动填充名为 PM1 2016-10-06 1.AL1, PM1 2016-10-06 2.AL1, PM1 2016 的文件-10-07 1.AL1 等我已经编写了(感谢 Aacini 的核心代码!)一个完全按照我需要的方式工作的批处理脚本,但我的问题是它只适用于一个文件,并且该文件的文件名中不能有空格。代码:
@echo off
cd c:\test
setlocal EnableDelayedExpansion
set LF=^
%do not remove%
%these lines%
set "EOL=!LF!" & set "EOL2=!LF!"
for /f "tokens=*" %%a in (c:\test\PM1.AL1) do (
if %%a equ PROP-SUMMARY set "EOL=!LF!"
set /P "=%%a!EOL!" < NUL
set "EOL0=!EOL!" & set "EOL=!EOL2!" & set "EOL2=!EOL0!"
if %%a equ PROP-VALUES set "EOL=,"
) >>c:\test\test.tmp
TYPE c:\test\test.tmp | FIND "" /V > c:\test\PM1_new.AL1"
DEL c:\test\test.tmp
如果您对 TYPE 行感到好奇,它会将文件中的所有 CR 更改为 CRLF。
【问题讨论】:
-
您的标题表明您需要它来处理多个文件,但您将如何确定哪些文件?您需要它来处理目录中的所有文件吗?
-
目录下所有文件
-
我没有阅读任何信息告诉我具体需要修改什么。通常有助于提供输入和输出示例。
-
此脚本适用于一个文件 PM1.AL1。我需要它在 PM1 2016-10-07 1.AL1 和 PM1 2016-10-06 2.AL1 等上工作。我想我很清楚,即我需要一个文件名的 for 循环,它需要是能够处理文件名中的空格吗?
-
您可以方便地添加link to the original question,以便其他用户可以查看。
标签: batch-file filenames spaces