【发布时间】:2016-05-30 05:38:44
【问题描述】:
我在一个目录中有一个 csv 文件列表,其名称格式为 XX_YYYFile.csv,其中 XX 是一个可以包含任何字符(包括空格)的名称,而 YYY 是随机的 3 位数字。例如:“book_123File.csv”、“best movie_234File.csv”等。我想阅读此文件列表,然后通过删除“_YYYFile”创建新的 CSV 文件。新文件的内容与原文件相同,只是第一行需要添加值“number,name,date”。
set inputFileFolder=C:\Input
set outputFileFolder=C:\Output
FOR /F "delims=" %%F IN ('DIR %inputFileFolder%\*File.csv /B /O:D') DO (
set reportInputFile=%inputFileFolder%\%%F
set reportInputFileName=%%F
set result=!reportInputFileName:~0,-12!
set reportOutputFileName=!result!.csv
set reportOutputFile=%outputFileFolder%\!result!.csv
echo number,name,date > !reportOutputFile!
for /f "tokens=* delims=" %%a in (!reportInputFile!) do (
echo %%a >> !reportOutputFile!
)
)
如果我运行这个批处理文件,文件“book.csv”会成功创建,内容正确(第一行:“数字、名称、日期”,下一行来自文件“book_123.csv”)。但是文件“best movie_234.csv”和其他文件名中包含空格的文件没有成功创建。文件“best movie.csv”仅使用 1 行“编号、名称、日期”创建。文件“best movie_234.csv”的内容不会复制到文件“best movie.csv”。
请帮忙。
【问题讨论】:
标签: windows file csv batch-file text