2

У меня есть папка с большим количеством файлов, которые мне нужно переименовать. Например, исходный формат: ABC%20DEF%20GHI%20JKL.xyz . Что мне нужно сделать, это заменить каждый %20 на _ . По сути, я анализирую символы% 20 в именах файлов, а затем заменяю их символом подчеркивания _ .

В идеале я хотел бы иметь возможность завершить это с помощью сценария, а не приложения.

1 ответ1

0

Пакетное переименование Windows для замены% 20 символов на _

У меня есть папка с большим количеством файлов, которые мне нужно переименовать. Например, исходный формат: ABC%20DEF%20GHI%20JKL.xyz . Что мне нужно сделать, это заменить каждый %20 на _ . По сути, я анализирую символы% 20 в именах файлов, а затем заменяю их символом подчеркивания _ .

В идеале я хотел бы иметь возможность завершить это с помощью сценария, а не приложения.


Предупреждение: если вы спрашиваете, с чего начать, чтобы узнать, как это сделать с помощью команд batch и rename, то этот вопрос будет помечен как не по теме ( скорее всего)(см. Ответ Techie007 в комментариях под моим ответом).


Ниже приведен пример пакетного сценария, который заменяет все символы %20 именах файлов и заменяет их на символы подчеркивания \ подчеркивания _ . Так что вы можете посмотреть на это и посмотреть, даст ли это вам также некоторые отправные точки. Это завершит задачу, которую вы выполняете в противном случае, согласно вашему запросу, и любой из двух способов интерпретации без дополнительных разъяснений.

Я опубликую некоторые ресурсы для изучения ниже пакетного сценария, и это будут дополнительные учебные ресурсы для начальных точек тоже.


Пример пакетного сценария для анализа %20 и замены на и подчеркивания _ на пакет для файлов в определенном каталоге.

@ECHO ON
SETLOCAL DISABLEDELAYEDEXPANSION

SET rendir=C:\Path\FolderPath\WithFilesToRename
FOR /F "USEBACKQ DELIMS=" %%N IN (

`DIR /A-D /B "%rendir%"`

) DO (

    SET "Var=%%~NXN"
    SETLOCAL ENABLEDELAYEDEXPANSION
    SET "Orig=!Var!"
    SET "Var=!Var:%%20=_!"

  IF NOT "!Var!"=="!Orig!" (
    IF NOT EXIST "%%~DPN!Var!" (
      REN "%rendir%\!Orig!" "!Var!"

) ELSE (
    GOTO EOF
)
)
  ENDLOCAL
)

Дальнейшее чтение и ресурсы

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