我的脚本是:
@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>