2017-03-02 30 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在最后一行

相关问题