我如何提供我的目录中的文件列表?

我如何提供我的目录中的文件列表?

我需要一个批处理文件,提供文件夹中所有用“;”分隔的文件的列表。

就像我的目录列表:

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.)

相关内容