我需要一个批处理文件,提供文件夹中所有用“;”分隔的文件的列表。
就像我的目录列表:
dir1
dir2
a.txt
b.sql
c.html
导出文件应该是这样的:
a.txt;b.sql;c.html
我已经使用:dir /a /b /-p /0:gen >list.txt
但它包含目录名称并且我无法用分号分隔它们:(
请帮忙
答案1
您可以使用这个简单的批处理文件:
@echo off
setlocal enabledelayedexpansion enableextensions
set LIST=
for %%F in (*) do set LIST=!LIST!;%%F
>list.txt echo %LIST:~1%
这只是遍历所有文件(不包括目录)并将其附加到最后打印的变量。
一个更复杂的方法可以实现同样的效果,并且还有一个好处,就是你可以中途取消,同时仍然保留到目前为止的信息。
@echo off
set FIRST=1
for %%F in (*) do (
if defined FIRST (
set FIRST=
<nul set /P X=%%F
) else (
<nul set /P X=;%%F
)
)
答案2
您可以使用它来获取基本列表...然后将换行符替换为分号
dir /A-D /ON /B > list.txt
笔记:
/A-D: minus Directories
/ON: Order by Name (not sure if you need this, but typically helpful)
/B: Bare format (e.g. just the names, no dates etc.)