Назад | Перейти на главную страницу

Напечатать текстовый файл с именами файлов папок

Поэтому мне было поручено получить имена папок и файлов для портативного жесткого диска. В настоящее время я не уверен, как это сделать. Я знаю стандартный способ командной строки, чтобы сделать это, но допустим, что это более миллиона файлов, распределенных примерно в 20 000 папок на терабайтном жестком диске. Так что мне любопытно, может ли кто-нибудь указать мне исходное направление для этого. В ореховой скорлупе я хотел бы выполнить файл .bat, который создаст текстовый файл с каталогом в качестве заголовка, а затем все файлы в этой папке, перечисленные под этим именем каталога, но выполнить этот цикл через весь жесткий диск, если это возможно? Или, если кто-то знает, есть ли лучший способ сделать это, просто ищите направление для начала.

C: / test / папка Alpha
filename112.text
filename221.tif
filename331.gif

C: / test / папка Bravo
filename1.text
filename2.tif
filename3.gif

C: / test / Папка Чарли
filename112.png
filename221.aspx
filename331.jpeg

Я знаю, что это не соответствует ожидаемому формату вывода, но гораздо более простой способ сделать это:

dir /s /b /a | sort > files.txt

Результат будет выглядеть так:

C:\test\folder Alpha\
C:\test\folder Alpha\filename112.text
C:\test\folder Alpha\filename221.tif
C:\test\folder Alpha\filename331.gif
C:\test\folder Bravo\
C:\test\folder Bravo\filename1.text
C:\test\folder Bravo\filename2.tif
C:\test\folder Bravo\filename3.gif
C:\test\folder Charlie\
C:\test\Folder Charlie\filename112.png
C:\test\Folder Charlie\filename221.aspx
C:\test\Folder Charlie\filename331.jpeg

PowerShell

$LastDirectory = ""
Get-ChildItem -Recurse | ForEach {
    if ($LastDirectory -ne $_.DirectoryName) {
        $LastDirectory = $_.DirectoryName
        Write "`n"
        Write $_.DirectoryName
    }
    Write $_.Name
} | Out-File foundFiles.txt

Вы можете увидеть это на экране, сняв | Out-File foundFiles.txt немного.