3

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

У меня есть куча файлов с шаблоном -FileName.pdf, и я хотел бы удалить знак минус с лицевой стороны, чтобы у меня был только FileName.pdf.

Пока у меня есть следующая команда:

dir /B > Batch.txt
for /f "tokens=1,2" %i in (Batch.txt) DO ren "%i %j" %l

Есть ли что-нибудь попроще, что я мог бы использовать?

заранее спасибо

2 ответа2

3

Я хотел бы удалить знак минуса с передней стороны

Используйте следующий пакетный файл:

@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%i in ('dir /b -*.pdf') do (
  set _fname=%%i
  echo ren %%i !_fname:~1!
  )

Заметки:

  • Это удалит первый символ из всех имен файлов, соответствующих выражению -*.pdf .
  • Замените echo ren на ren если вы уверены, что командный файл будет переименован правильно.

Дальнейшее чтение

  • Индекс AZ командной строки Windows CMD - Отличный справочник по всем вопросам, связанным с командной строкой Windows.
  • dir - Показать список файлов и подпапок.
  • enabledelayedexpansion - отложенное расширение приведет к тому, что переменные будут расширяться во время выполнения, а не во время анализа.
  • for /f - Циклическая команда против результатов другой команды.
  • set - отображать, устанавливать или удалять переменные окружения CMD. Изменения, сделанные с помощью SET, будут сохраняться только в течение текущего сеанса CMD.
  • setlocal - устанавливает параметры для контроля видимости переменных среды в командном файле.
0

Я использую Free Commander XE, который имеет полезную возможность многократного переименования, которая позволяет вам предварительно просмотреть результаты, прежде чем переименовывать группу файлов, используя шаблон.

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