У меня есть изображения с именами файлов, например, 0034343.jpg и я хочу удалить начальные нули, оставив 34343.jpg в качестве нового имени файла.
Как я могу сделать это в командной строке? Я попробовал REN 00*.jpg *.jpg , но это не сработало.
У меня есть изображения с именами файлов, например, 0034343.jpg и я хочу удалить начальные нули, оставив 34343.jpg в качестве нового имени файла.
Как я могу сделать это в командной строке? Я попробовал REN 00*.jpg *.jpg , но это не сработало.
Вы должны быть в состоянии начать с:
@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.