删除文件夹名中的中文字符

删除文件夹名中的中文字符

我正在运行 Windows Server 2003,我需要找到一种方法来批量重命名包含中文字符的文件夹。基本上我想删除中文字符,但如果我删除它,文件夹名称将没有名称,所以我需要用一些随机的 5 位字母/数字替换它。

有什么解决办法吗?

答案1

你可以试试肯·雷纳姆

我首先更改设置,将所有非法字符替换为下划线:

1

接下来我选择了更改代码页文件名来自统一码Windows-1252这会将中文字符替换为问号,因为问号是通配符,因此在 Windows 中是非法的文件名字符,因此又被替换为下划线:

2

如果这还不够,而您又确实需要它,那么也许有一种方法可以用随机数字替换字符,但我没有检查。

答案2

您可以使用 PowerShell:

Get-ChildItem -Recurse |
  ForEach-Object {
    $n = $_.BaseName -replace '[\p{IsCJKUnifiedIdeographs}]'
    while ($n -match '^\s*$' -or (Test-Path (Join-Path (Split-Path -Parent $_.FullName) $n)) {
      $n = -join(0..5|%{[char[]](65..90+97..122+48..57)|Get-Random})
    }
    Rename-Item $_.FullName ($n + $_.Extension)
  }

这将从文件名中删除所有 CJK 表意文字(如果需要,您可能需要使用其他块稍微扩展字符类),并且如果之后文件名为空或与现有名称冲突,则会生成一个随机的字母数字名称。

相关内容