Переименование в командной строке

У меня есть изображения с именами файлов как 0034343.jpg и я хочу удалить начальные нули, уезжая 34343.jpg как новое имя файла.

Как я могу сделать это в командной строке? Я попробовал REN 00*.jpg *.jpg, но это не работало.

0
задан 14.06.2012, 19:47

2 ответа

Необходимо смочь запуститься с:

@setlocal enableextensions enabledelayedexpansion
@echo off
for /f "delims=*" %%a IN ('dir /b 00*.jpg') do (
    set file=%%a
    set newfile=!file:~2!
    echo move !file! !newfile!
)
endlocal

Это будет, как есть, просто отзовитесь эхом move команда. Удалите echo после того как Вы закончили тестировать. И имейте в виду, что это не может работать как ожидалось, если Ваши имена файлов имеют пробелы в них.

Продвижение через него поразрядно:

  • setlocal включает бесспорный cmd.exe расширения, руководитель, здесь являющийся способностью сделать задержанное расширение переменных среды внутри for циклы.
  • for цикл выполняет cmd dir /b 00*.jpg, выполнение одного повторения на файл (установка %%a к имени файла).
  • Первое set просто сохраняет имя файла в переменную. Второй является операция подстроки, запускающаяся в третьем символе.
  • move переименует файл.

Можно исследовать различные команды путем ввода help команды в командной строке:

setlocal /?
set /?
for /?
set /?
5
ответ дан 24.11.2019, 02:47

Попробуйте это:

for %i in (*.jpg) do (
    set filename=%~nxi
    set newname=%filename:~2%
    ren !filename! !newname!
)

Это просто разделит два символа от начала каждого имени файла. Задержанное расширение должно быть включено. Возможно, должен был бы сделать cmd.exe /v:on сначала на XP.

2
ответ дан 24.11.2019, 02:47

Теги

Похожие вопросы