2017-03-02 68 views
0

我在尋找一種解決方案,從大量文件中刪除這些特殊字符「#」「&」「%」。這些文件目前位於名爲的文件夾中「Banyan Foundation,Inc - 在名爲」My Book(E :)「的外部硬盤驅動器中複製」「。 上述文件夾中有38,282個文件和8,454個文件夾。Powershell - 從子文件夾中的文件中刪除特殊字符

我想將它們從外部硬盤驅動器移到Onedrive上的新存儲平臺。但是,由於某些文件名具有特殊字符,某些文件不會被複制。

我是Powershell的新手,我在大學使用了幾個月,但之後一直沒有觸及它。我一直在尋找一個解決方案的小時,但我有問題的設置位置(它是在一個外部硬盤驅動器),並選擇我想清理的確切文件的位置。

謝謝!

+0

你想怎麼處理衝突?如果你有兩個文件'test#1.txt'和'test&1.txt'例如? –

+0

偉大的問題!我不認爲這會是一個問題,但如果確實發生,最簡單的方法是修復它?這些文件不會以任何方式定期搜索或打開。他們主要是爲了紀錄。 –

+0

*但我有問題的設置位置* - 什麼問題? – TessellatingHeckler

回答

0
  • $模式是一個正則表達式匹配任何的#&%
  • 這個腳本不採取可能重名的照顧。

$Pattern = '#|&|%' 
$Start = "E:\" 
$Folder = "Banyan Foundation, Inc - Copy" 
GCI -path $Start -Directory -recurse $Folder |ForEach { 
    GCI -Path $_.FullName -Recurse -File | Where Name -match $Pattern| 
    Rename-Item -NewName {"$($_.FullName)" -replace $Pattern,''} -whatif 
} 

如果輸出看起來OK刪除-whatif在最後一行

相關問題