从目录路径或 .txt 文件获取文件名 - Windows

从目录路径或 .txt 文件获取文件名 - Windows

目前我有一个 FileListGenerator.bat,如下所示:

dir /b /s >>FilesDirectoryList.txt

返回类似的文件目录列表。

C:\Users\Ben\Desktop\Customers\Customer1
C:\Users\Ben\Desktop\Customers\Customer2
C:\Users\Ben\Desktop\Customers\FileListGenerator.bat
C:\Users\Ben\Desktop\Customers\FilesDirectoryList.txt
C:\Users\Ben\Desktop\Customers\Customer1\Analysys Mason
C:\Users\Ben\Desktop\Customers\Customer1\More
C:\Users\Ben\Desktop\Customers\Customer1\Other
C:\Users\Ben\Desktop\Customers\Customer1\Analysys Mason\Crook _ Hatchet blk white font.psd
C:\Users\Ben\Desktop\Customers\Customer1\More\Crook _ Hatchet lot.png
C:\Users\Ben\Desktop\Customers\Customer1\More\Crook _ Hatchet midd.png
C:\Users\Ben\Desktop\Customers\Customer1\Other\Crook _ Hatchet bigger.png
C:\Users\Ben\Desktop\Customers\Customer1\Other\Crook _ Hatchet botton final.png
C:\Users\Ben\Desktop\Customers\Customer2\Analysys Mason
C:\Users\Ben\Desktop\Customers\Customer2\More
C:\Users\Ben\Desktop\Customers\Customer2\Other
C:\Users\Ben\Desktop\Customers\Customer2\Analysys Mason\LiberalHand-Bld.otf
C:\Users\Ben\Desktop\Customers\Customer2\Analysys Mason\LiberalHand-Rg.ttf
C:\Users\Ben\Desktop\Customers\Customer2\Other\Crook _ Hatchet new font.png

有没有办法针对 .txt 文件运行脚本或在命令行中仅返回文件名?

答案1

在命令行中尝试这个:

for /r %a in (*) do @echo %~nxa >>FilesDirectoryList.txt

在批处理文件中(需要将百分号加倍):

for /r %%a in (*) do @echo %%~nxa >>FilesDirectoryList.txt

根据答案这里

答案2

如果您需要仅显示某种文件类型,如.txt、.doc、.dll、.exe等,您可以使用dir命令并根据需要调整参数。

这是一个简单的例子:假设我需要显示目录中的文本文件名称列表。我可以使用此命令

dir *.txt /b

它会显示如下内容:

文件1.txt

文件2.txt

文件3.txt

文件4.txt

...ETC

您可以按原样在批处理文件中使用它(如下所示):

@Echo off

:: display a list of *.txt files
dir *.txt /b

或者您可以根据需要扩展代码(如下所示):

@Echo off

:: save a list of *.txt files into another text file inside C:
dir *.txt /b > C:\results.txt

这取决于您的目标以及您想如何实现它。

您可以从这里了解有关 DIR 命令行的更多信息: https://technet.microsoft.com/en-us/library/cc755121(v=ws.11).aspx

答案3

在 Windows PowerShell 中,您可以执行此操作。

仅具有完整路径的文件名:

(gci -r | ? {!$_.PsIsContainer}).FullName | Out-File test.txt -Force

仅显示名称和扩展名的文件名:

(gci -r | ? {!$_.PsIsContainer}).Name | Out-File test.txt -Force

相关内容