Я использую Windows Server 2003, и мне нужно найти способ массового переименования папок, содержащих китайские символы. Обычно я хочу удалить китайские иероглифы, но если я удалю их, тогда имя папки не будет иметь имени, поэтому мне нужно заменить его случайными 5-значными буквами / цифрами.

Какие-либо решения?

2 ответа2

0

Вы можете попробовать Ken Rename.

Сначала я изменил настройки, чтобы заменить все недопустимые символы подчеркиванием:

1

Затем я выбрал вариант, чтобы изменить кодовую страницу имен файлов с Unicode на Windows-1252. Это заменило китайские символы на знаки вопроса, которые, будучи подстановочными знаками и, следовательно, недопустимыми символами имени файла в Windows, в свою очередь были заменены подчеркиванием:

2

В случае, если этого недостаточно, и вам это действительно нужно, возможно, есть способ заменить символы случайными цифрами, но я не проверял.

0

Вы можете использовать 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 из имени файла (вам может потребоваться немного расширить класс символов с помощью других блоков, если необходимо), и если он впоследствии будет пустым или столкнется с существующим именем, будет сгенерировано случайное буквенно-цифровое имя.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .