任何人都碰巧擁有一個示例腳本,用於使用Powershell遞歸地在文件系統中給定目錄?最終我想要做的是創建一個腳本,爲我生成一個目錄下的NSIS文件列表。與BASH腳本here非常相似的東西。用Powershell遞歸文件系統
2
A
回答
3
由於halr9000證明,你可以使用Get-ChildItem
cmdlet的-recurse
開關參數獲取指定路徑下的所有文件和目錄。
它看起來就像你在你的問題聯繫到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'
4
這是該bash腳本的「釋義」端口。
$path = "c:\path\to\program"
$installFiles = "installfiles_list.txt"
$uninstFiles = "uninstfiles_list.txt"
$files = get-childitem -path $path -recurse | where-object { ! $_.psIsContainer } # won't include dirs
$filepath = $files | foreach-object { $_.FullName }
$filepath | set-content $installFiles -encoding ASCII
$filepath[($filepath.length-1)..0] | set-content $uninstFiles -encoding ASCII
相關問題
- 1. Java非遞歸文件系統步行
- 2. 使用PowerShell遞歸刪除文件
- 3. Julia加速遞歸系統
- 4. 遞歸菜單系統
- 5. 重命名文件夾和文件在Windows系統遞歸
- 6. 從Windows文件系統中遞歸刪除.listing文件
- 7. 嘲笑時遞歸調用系統
- 8. PowerShell的:移動文件遞歸
- 9. 在PowerShell中遞歸重命名文件
- 10. 如何遞歸diff而不穿越文件系統?
- 11. 告訴「ls -laR /」:不要遞歸到其他文件系統
- 12. Wince 6.0文件系統損壞 - 目錄似乎在遞歸
- 13. PowerShell的「插件」系統
- 14. 從遞歸到非遞歸構建系統
- 15. 菜單系統的遞歸SQL
- 16. 遞歸系統堆棧的狀態
- 17. 遞歸系統堆棧分配
- 18. Powershell遞歸返回
- 19. C++ 17文件系統(在Windows上的實驗/文件系統)遞歸地刪除所有空目錄
- 20. 好文件系統和/或歸檔系統爲多個小文件
- 21. 遞歸搜索系統中的所有文件夾和子文件夾
- 22. BASH:通過文件系統遞歸搜索和重命名文件
- 23. 遞歸地重命名本地文件系統上的目錄/文件結構
- 24. 在PowerShell中打印遞歸文件和文件夾計數?
- 25. Powershell幫助系統使用
- 26. 只使用PowerShell遞歸子文件夾的x個級別
- 27. 使用PowerShell進行遞歸文件搜索
- 28. 使用遞歸xsl文件
- 29. 遞歸查找文件中的文本(PowerShell)
- 30. PowerShell腳本遞歸錯誤
我的答案是否足夠?如果是這樣,請將其標記爲已接受。 – halr9000 2008-09-23 12:44:38