Войти

Показать полную графическую версию : [решено] Переименование файлов


ashdinalt
27-06-2011, 21:33
Здравствуйте.

Есть группа файлов с суффиксом. 02342-b.jpg, 03415-b.jpg, 05726-b.jpg и т.д.
Как переименовать (удалить суффикс) их одной коммандой (строкой) чтобы получить 02342.jpg, 03415.jpg, 05726.jpg ?

Ну типа:

FOR %%A in (*-b.jpg) do ren "%%A" "%%~nA:~-3%.jpg"

amel27
28-06-2011, 03:18
for /f "delims=-" %%a in ('dir/b/a-d *-b.jpg') do ren "%%a-b.jpg" "%%a.jpg"
for %%a in (*-b.jpg) do set "$a=%%~na"& call ren "%%a" "%%$a:~-2%%.jpg"

ashdinalt
28-06-2011, 11:52
Спасибо. Работают оба варианта.
А почему обязательно надо ещё одну переменную вводить? (set "$a=%%~na")
Напрямую в функции REN нельзя корректировать имя?

Объясните, пожалуйста, for /f "delims=-" %%a in ('dir/b/a-d *-b.jpg') do ren "%%a-b.jpg" "%%a.jpg"
а конкретно: for /f "delims=-" и ('dir/b/a-d *-b.jpg')

amel27
28-06-2011, 12:09
ashdinalt, параметры цикла типа %%a никак не связаны с переменными окружения... К примеру, имена переменных нечувствительны к регистру, в то время как %%a и %%A обозначают разные параметры.

('dir/b/a-d *-b.jpg')»вывести список файлов по маске "*-b.jpg" (см. "HELP DIR"):dir /b /a-d *-b.jpg
for /f "delims=-"»разбор результата команды (DIR) с разбивкой на токены по символу "-", по умолчанию берётся только 1-й токен (см. "HELP FOR")

ashdinalt
28-06-2011, 12:19
Ок. Спасибо!

sgtraf
13-07-2011, 09:06
Смотрите я сделал сам. Удивлен своим супер способностям.
переименование файлов содержащих 1 пробел в файл, в котором вместо пробела стоит дефис.

for /f "tokens=1,2 usebackq" %i in (`dir/b/a-d "* *.txt"`) do ren "%i %j" "%i-%j"

вводится прямо в командную строку

amel27
13-07-2011, 09:27
Смотрите я сделал сам. »респект!.. только нужно немного подправить,
иначе имена файлов с более чем 1 пробелом будут обрезаться (до 2-го пробела)

в таком варианте будет производиться замена только 1-го пробела на дефис:
for /f "tokens=1*" %i in ('dir/b/a-d "* *"') do ren "%i %j" "%i-%j"

Viajero
16-09-2011, 21:35
Добрый вечер,

ситуация следующая: на жестком имеется пара сотен папок, в которых лежит много сотен файлов (по больше части .avi, .mkv, .mp4), к названию каждого файла приделан определенный лейбл, пример: Файл1 (workgroup1).avi Есть ли способ убрать этот лейбл (в скобках) сразу из названий ВСЕХ файлов?

ShaddyR
16-09-2011, 22:02
Viajero, а что мешает? Функция Файл\Групповое переименование в TotalCommander. Предварительно делаешь поиск всех файлов по заданному шаблону, затем - "файлы на панель", после чего и воспользуйся оным функционалом. Все легко, интуитивно и достаточно визуализировано.

ЗЫ: вроде про скриптовое решение человек не спрашивал, зачем сюда перенесли-то?

Iska
16-09-2011, 22:10
ЗЫ: вроде про скриптовое решение человек не спрашивал, зачем сюда перенесли-то? »
Так бывает. Может у человека ни TC, ни Far Manager'а нету. Посчитали, что для этого нужен скрипт. Хотя, на мой взгляд, не стоит мудрить скрипты для однократно выполняемых задач.

sov44
17-10-2011, 00:09
Сломал голову. :wacko:
Распаковываю обновления типа Office2010-kb2566458-fullfile-x86-glb.exe, из директории с распакованными обновлениями удаляю всё лишнее кроме *.msp, и пробую переименовать *.msp, добавив в начало kb**- , не получается..

@echo off
SetLocal enabledelayedexpansion

set tt=%~dp0Unpack

For /F "Tokens=1-4* Delims=-" %%A in ('Dir /B "*.exe"') Do (
%%A-%%B-%%C-%%D-%%E /extract:%tt% /quiet &&call:1 "%%B")

For /R "%tt%" %%b In (*) Do (If /i "%%~xb" NEQ ".msp" Del /F /Q "%%b" 2>nul)

For %%i in ("%tt%\*.msp") Do set "name=%~n1" &&call:1 %name%

:1
ren "%name%" "%~B-%name%%~x1"

sov44
17-10-2011, 19:51
Ни у кого нет идей?

sov44
18-10-2011, 07:08
Решение найдено на другом форуме. Вопрос снят.

intersk
18-10-2011, 10:50
нужно переименовать файлы: убрать одним разом в начале файлов цифры
(например
014 ЖЕКА МИЛКОВСКИЙ - В КАЖДОЙ МИНУТЕ.mp3
015 DAUGHTRY - HOME.mp3
016 ТРЭК & D.J.БЛЮЗ - МОЙ РАЙ.mp3
017 CHRIS BROWN - TAKE YOU DOWN.mp3
018 БУМБОКС - КИМ МИ БУЛИ.mp3
019 BRAINSTORM - AND I LIE.mp3
020 ВЕЛЬВЕT - СМУТНОЕ.mp3
021 MASON vs. PRINCESS SUPER-STAR - PERFECT (RADIO EDIT).mp3)

ShaddyR
18-10-2011, 19:26
intersk, Функция Файл\Групповое переименование в TotalCommander. Предварительно делаешь поиск всех файлов по заданному шаблону, затем - "файлы на панель", после чего и воспользуйся оным функционалом. Все легко, интуитивно и достаточно визуализировано. »
если, конечно, не собираешься скриптовать подобную задачу - что имеет смысл в автоматизации одного и того же действия, а не каждый раз - нового.




© OSzone.net 2001-2012