Команда для вывода списка всех файлов в папке и ее подпапках с указанием только имен файлов (без путей) с помощью Win cmd.exe - PullRequest
0 голосов
/ 10 июня 2019

Я ищу команду, использующую cmd.exe (Win 10), которая перечислит все файлы в папке и ее подпапках в алфавитном порядке, независимо от путей, и в которой будут показаны только имена файлов (без путей).

Команды, с которыми я знаком (включая, например, "dir .. \ samplefolder / b / s / AD / o: n> filelist.txt") всевключите пути в вывод, и поэтому не , что я ищу.

Спасибо.

Ответы [ 2 ]

1 голос
/ 10 июня 2019
(for /r "c:\startfolder" %%A in (*) do echo %%~nxA)|sort

(это синтаксис командного файла; для использования непосредственно в командной строке заменяйте каждые %% просто на %)

for /r циклов r до концадля всех (не скрытых) файлов.

%%~nxA показывает n ame и e x только напряжение (если вы хотите только имя без расширения, используйте %%~nA)

См. for /? для получения дополнительной информации об этих модификаторах.

0 голосов
/ 10 июня 2019

Если на компьютере установлена ​​текущая версия PowerShell 5 или выше, вы можете использовать:

(Get-ChildItem -Recurse -File -Path '..\samplefolder').Name |
    Sort-Object |
    Out-File -PSPath 'filelist.txt' -Encoding ascii

В скрипте файла .bat.

>"filelist.txt" powershell -NoLogo -NoProfile -Command ^
    "(Get-ChildItem -Recurse -File -Path '..\samplefolder').Name | Sort-Object"

Если на машине нет текущей PowerShell, ее следует обновить или использовать:

>"filelist.txt" powershell -NoLogo -NoProfile -Command ^
    "(Get-ChildItem -Recurse -Path '..\samplefolder'|" ^
        "Where-Object { -not $_.IsContainer}).Name |" ^
        "Sort-Object"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...