Необходимо смочь запуститься с:
@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 /?
Попробуйте это:
for %i in (*.jpg) do (
set filename=%~nxi
set newname=%filename:~2%
ren !filename! !newname!
)
Это просто разделит два символа от начала каждого имени файла. Задержанное расширение должно быть включено. Возможно, должен был бы сделать cmd.exe /v:on
сначала на XP.