file - 如何将带有特殊字符的文件名转换为有效的文件名?

标签 file sharepoint powershell recursion filenames

我想知道是否可以在 powershell 中从整个目录结构中的所有文件中递归删除特殊字符?

例如,如果我有一个名为:

my presentation (fix).xlsx

我想把它重命名为:

my presentation fix.xlsx

感谢您的指导。

我们需要这样做的原因是我们正在将许多文件迁移到 sharepoint 2010 中,而 sharepoint 不喜欢带有特殊字符的文件!

最佳答案

我没有测试过这段代码,但我想你可能想要类似的东西:

Function Rename-Files($path)
{
 Get-ChildItem -path $path | 
 Foreach-Object { 
      $newName = $_.name -replace '[^A-Za-z0-9-_ \.\[\]]', ''
      if (-not ($_.name -eq $newname)){
        Rename-Item -Path $_.fullname -newname ($newName) 
      } 
 }
} #end function

Rename-Files -path "C:\somepath"

实际上,只需遍历目录(将函数修改为递归),然后替换任何不适当的(修改正则表达式以获得适当的内容)字符并替换它们什么都没有(有效地去除它们)

关于file - 如何将带有特殊字符的文件名转换为有效的文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15798031/

相关文章:

c# - 如何从 C# web 服务生成 WSDL 文件

共享点列表版本历史导出到 excel

python - 使用Python的Popen将Python变量传递给Powershell参数

powershell - KeyVault 生成带有可导出私钥的证书

java - 如何从源文件夹中以 FileInputStream 形式读取图像?

java - 扫描仪未读取最后一个数字

Bash + 检查文件是否存在,路径为 home ~

java - 未打印正确的输出 - 数组和字符串 - Java

sharepoint - 为 SharePoint 高信任应用程序实现 SSL

PowerShell 启动进程 -redirectStandardOutput 抛出 : The system cannot find the file specified