从目录中读取多个文件到一个文件中,以换行符分隔

从目录中读取多个文件到一个文件中,以换行符分隔

我的脚本是:

@echo off
setlocal EnableDelayedExpansion
set LF=^


rem ** The two empty lines are necessary
set "content="

for /f "delims=" %%x in ('dir /b /s D:\v\*.*') do (
  set "content=!content!%%x!LF!"
  echo. >>

)
echo(!content!>a.txt
endlocal

我从目录中读取所有文件名D:\并将它们写入a.txt。输出如下

D:\v\a.csvD:\v\b.txtD:\v\c.xml

我需要的输出是

D:\v\a.csv 
D:\v\b.txt 
D:\v\c.xml

如何在每个文件名后添加一个换行符?

答案1

如何在每个文件名后添加一个换行符?

将它们写出来for而不是建立输出行。

使用以下(大大简化的)批处理文件。

测试.cmd:

@echo off
for /f "delims=" %%x in ('dir /b /s D:\v\*.*') do (
  echo %%x>>a.txt
)
endlocal

我没有驱动器 D:,因此在驱动器 F 上运行以下测试:

示例输出:

F:\test>dir f:\v
 Volume in drive F is Expansion
 Volume Serial Number is 3656-BB63

 Directory of f:\v

03/08/2016  08:40    <DIR>          .
03/08/2016  08:40    <DIR>          ..
02/08/2016  20:43                 0 a.csv
02/08/2016  20:43                 0 b.txt
02/08/2016  20:43                 0 c.xml
               3 File(s)              0 bytes
               2 Dir(s)  1,772,975,259,648 bytes free

F:\test>test

F:\test>type a.txt
F:\v\a.csv
F:\v\b.txt
F:\v\c.xml

F:\test>

相关内容