Поэтому мне было поручено получить имена папок и файлов для портативного жесткого диска. В настоящее время я не уверен, как это сделать. Я знаю стандартный способ командной строки, чтобы сделать это, но допустим, что это более миллиона файлов, распределенных примерно в 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
$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
немного.