Как показало halr9000 , вы можете использовать параметр переключателя -recurse
командлета Get-ChildItem
для извлечения всех файлов и каталогов по указанному пути.
Похоже, что bash-скрипт, с которым вы связались в своем вопросе, также сохраняет каталоги, поэтому вот простая функция, которая возвращает файлы и каталоги в одном объекте результата:
function Get-InstallFiles {
param( [string]$path )
$allItems = Get-ChildItem -path $path -recurse
$directories = $allItems | ? { $_.PSIsContainer } | % { $_.FullName }
$installFiles = $allItems | ? { -not $_.PSIsContainer } | % { $_.FullName }
$uninstallFiles = $installFiles[-1..-$installFiles.Length]
$result = New-Object PSObject
$result | Add-Member NoteProperty Directories $directories
$result | Add-Member NoteProperty InstallFiles $installFiles
$result | Add-Member NoteProperty UninstallFiles $uninstallFiles
return $result
}
Вот как вы можете использовать его для создания таких же текстовых файлов установки / удаления из примера halr9000, включая каталоги удаления:
$files = Get-InstallFiles 'C:\some\directory'
$files.InstallFiles | Set-Content 'installfiles.txt'
$files.UninstallFiles + $files.Directories | Set-Content 'uninstallfiles.txt'