Скопировать название каталогов в файл с параметрами
Добрый день!
На работе есть такая очень срочная задача:
Нужно скопировать имена всех хранящихся каталогов и (Внимание!) подкаталогов только первого уровня вложенности в текстовый файл, в котором можно было бы показать пробелом или табом имя каталога и подкаталогов. Имена папок могут быть с пробелами, на кириллице/латинице.
Пример:
"Папка1 содержит Подпапку1.1 и Подпапку1.2;
Папка2 содержит Подпапку2.1;
Папка3 не содержит вложенных подкаталогов;
и т.д."
В файле пример.txt должна быть запись вида:
"Папка1 Подпапка1.1 Подпапка1.2
Папка2 Подпапка2.1
Папка3
..."
Очень прошу, помогите пожалуйста создать Bat файл. Весь интернет перекопал, но ничего такого не нашел...
|
Цитата:
Цитата aks.05
В файле пример.txt должна быть запись вида:
"Папка1 Подпапка1.1 Подпапка1.2
Папка2 Подпапка2.1
Папка3
..." »
|
Потрясающе. Особенно с учётом:
Цитата:
Цитата aks.05
Имена папок могут быть с пробелами… »
|
PowerShell:
Код:
$sRootPath = "C:\Windows"
$sResultFile = "C:\Песочница\031\пример.txt"
([System.IO.FileInfo]$sRootPath).FullName | Out-File -FilePath $sResultFile
Get-ChildItem -Path $sRootPath -Force |`
ForEach-Object -Process {
if($_.PsIsContainer) {
"`t$($_.Name)" | Out-File -FilePath $sResultFile -Append
Get-ChildItem -Path $_.FullName -Force |`
ForEach-Object -Process {
if($_.PsIsContainer) {
"`t`t$($_.Name)" | Out-File -FilePath $sResultFile -Append
}
}
}
}
Результирующий «пример.txt»
Код:
C:\Windows
$968930Uinstall_KB968930$
spuninst
$NtUninstallKB968930$
ru
addins
AppPatch
assembly
GAC
GAC_32
…
Cursors
Debug
UserMode
Downloaded Program Files
Driver Cache
i386
ehome
Fonts
…
|
Супер! Огромное Спасибо!
А можно сделать так чтобы родительские каталоги сортировались по их дате создания, от самого раннего до самого позднего?
|
Цитата:
Цитата aks.05
от самого раннего до самого позднего? »
|
Теперь бы ещё на русский перевести. «Более ранний» — это старше возрастом? Или наоборот?
Чем старше — тем раньше:
Код:
$sRootPath = "C:\Windows"
$sResultFile = "C:\Песочница\031\пример.txt"
([System.IO.FileInfo]$sRootPath).FullName | Out-File -FilePath $sResultFile
Get-ChildItem -Path $sRootPath -Force | Sort-Object -Property "CreationTime" |`
ForEach-Object -Process {
if($_.PsIsContainer) {
"`t$($_.Name)" | Out-File -FilePath $sResultFile -Append
Get-ChildItem -Path $_.FullName -Force | Sort-Object -Property "CreationTime" |`
ForEach-Object -Process {
if($_.PsIsContainer) {
"`t`t$($_.Name)" | Out-File -FilePath $sResultFile -Append
}
}
}
}
Если надо наоборот — добавьте параметр «-Descending» в оба командлета «Sort-Object».
|
Все понятно! Большое спасибо!
|
Время: 13:12.
© OSzone.net 2001-