В настоящее время у меня есть 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 или в командной строке, чтобы получить только имена файлов?

3 ответа3

1

Попробуйте это в командной строке:

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

В пакетном файле (нужно удвоить процентные знаки):

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

На основании ответа здесь

0

Если вам нужно отобразить ТОЛЬКО определенный тип файла, такой как .txt, .doc, .dll, .exe ..etc, вы можете использовать команду dir и настроить параметры так, как вам нужно.

Вот простой пример: Предположим, мне нужно отобразить список имен текстовых файлов только в каталоге. Я могу использовать эту команду

dir *.txt /b

и он будет отображать что-то вроде этого:

file1.txt

file2.txt

file3.txt

file4.txt

...так далее

Вы можете использовать его в пакетном файле как есть (что-то вроде этого):

@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

0

В Windows PowerShell вы можете сделать это.

Просто имена файлов с полным путем:

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

Только имена файлов, показывающие только имя и расширение:

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .