Powershell - 从子文件夹中的文件中删除特殊字符

时间:2017-03-02 17:38:24

标签: powershell

我正在寻找一个解决方案来删除这些特殊字符"#" "&安培;" "%"来自大量的文件。这些文件目前位于名为" Banyan Foundation,Inc - Copy" 的文件夹中,名为" My Book(E:)&#34 ; 上述文件夹中有38,282个文件和8,454个文件夹。

我正试图将它们从外部硬盘移动到Onedrive上的新存储平台。但是,由于某些文件名具有特殊字符,某些文件不会被复制。

我对Powershell很新,我在大学里用了几个月但从那时起就没有碰过它。我一直在寻找解决方案的时间,但我遇到了设置位置问题(它在外部硬盘驱动器上)并选择了我要清理的确切文件的位置。

谢谢!

1 个答案:

答案 0 :(得分:0)

  • $ Pattern是与#或任何&匹配的正则表达式 %$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 }
  • 此脚本不会处理可能重复的名称。
-whatif

如果输出看起来没问题,请删除最后一行中的stream create --definition ":streaming > hdfs --spring.hadoop.fsUri=hdfs://127.0.0.1:50071 --hdfs.directory=/ws/output --hdfs.file-name=kafkastream --hdfs.file-extension=txt --spring.cloud.stream.bindings.input.consumer.headerMode=raw" --name mykafkastream