Показать полную графическую версию : Удаление символов в конце имени файлов в папке
Viktor99
22-05-2019, 21:11
Добрый вечер. В папке C:\Working находятся картинки с разными именами. Скрипт должен удалить 12 символов в конце перед расширением. Помогите, пожалуйста, с батником.
1. Total Commander - Multi rename tool.
2.
set VARIABLE=%VARIABLE:~10,5% вернет из переменной %VARIABLE% 5 символов, начиная с 11-го (индексация с 0).
set VARIABLE=%VARIABLE:~-5% вернет из переменной %VARIABLE% последние 5 символов.
set VARIABLE=%VARIABLE:~0,-5% вернет из переменной %VARIABLE% все символы, кроме последних 5.
for /? покажет справку, где есть информация про модификаторы, которые позволяют вытащить имя без расширения.
Viktor99
23-05-2019, 00:00
Нашел подходящий скрипт на форуме, но его нужно доработать. Он удаляет указанное количество символов из начала имени. Помогите, пожалуйста, модифицировать, чтобы удалял с конца. Спасибо за помощь.
@echo off
setlocal
set "folder=C:\ftp\rpo"
set "number=7"
pushd "%folder%"
for /f "delims=" %%i in ('2^>nul dir/a-d/b') do (
set name=%%~ni
2>nul cmd/v/c ren "%%i" "!name:~%number%!%%~xi"
)
popd
endlocal
megaloman
23-05-2019, 05:34
@Echo Off
Set "Files=Z:\Box_In\*.*"
Set /A N=12
For %%f In ("%Files%") Do Set "Name=%%~nf" &Call Ren "%%f" "%%Name:~0,-%N%%%%%~xf"
Exit /B
Неплохо бы указать более определённую маску файлов Ваших картинок, например:
Set "Files=Z:\Box_In\*.jpg"
Скрипт никак не контролирует исходные длины имён файлов, нет никакой защиты от его случайного повторного применения. Если предоставите дополнительную инфу, можно будет думать.
нет никакой защиты »
да еще при таком серьезном обрезании немалая вероятность совпадения имен после обрезки, файл в таком случае не переименуется, а кто-то будет чесать репу почему не работает код.
Viktor99, см. первый ответ в теме.
Knaps,
в папке лежит три файла:
abc111111111111.txt
abc222222222222.txt
abc333333333333.txt
ну давайте возьмем в переменную имя файла удалим вашим способом в каждом 12 последних символов перед расширением файла как просит ТС и попробуем потом переименовать каждый приведенный выше файл в abc.txt, как думаете, получится?
alpap,
1. Не очень понимаю, что вы пытаетесь показать. Что есть случаи, когда задача ТС не решается? Ну да, они есть. И что?
2. С чего вы вообще взяли, что я что-то говорил о том, что переименование всегда получится?
что-то говорил »
ну может и не говорил, но намекал, иначе как назвать посыл п6 обратить внимание на ваше даже не решение (в отличие п4, после которого оно зачем-то присутствует), а просто намек на использование справки и не более. Не, я бы ничего не имел против если бы ваше направление могло решить проблему, но когда megaloman акцентировал внимание на одних возможных проблемах, а я добавил что подводных камней может быть и больше, вы своим выпадом вроде как пытались показать, все выше ерунда, мой пост решает все проблемы.
alpap, класс, мне понравилось. Приписать собеседнику какие-то намеки, начать их опровергать. Пожалуй, отвечу классикой: https://www.youtube.com/watch?v=OGsHshpYkiU.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.