Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Переименование файлов (http://forum.oszone.net/showthread.php?t=209995)

ashdinalt 27-06-2011 21:33 1702558

Переименование файлов
 
Здравствуйте.

Есть группа файлов с суффиксом. 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 1702702

Код:

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 1702874

Спасибо. Работают оба варианта.
А почему обязательно надо ещё одну переменную вводить? (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 1702890

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

Цитата:

Цитата ashdinalt
('dir/b/a-d *-b.jpg')»

вывести список файлов по маске "*-b.jpg" (см. "HELP DIR"):
Код:

dir /b /a-d *-b.jpg
Цитата:

Цитата ashdinalt
for /f "delims=-"»

разбор результата команды (DIR) с разбивкой на токены по символу "-", по умолчанию берётся только 1-й токен (см. "HELP FOR")

ashdinalt 28-06-2011 12:19 1702899

Ок. Спасибо!

sgtraf 13-07-2011 09:06 1712290

Смотрите я сделал сам. Удивлен своим супер способностям.
переименование файлов содержащих 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 1712298

Цитата:

Цитата sgtraf
Смотрите я сделал сам. »

респект!.. только нужно немного подправить,
иначе имена файлов с более чем 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 1754550

Массовое изменение имен файлов?
 
Добрый вечер,

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

ShaddyR 16-09-2011 22:02 1754570

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

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

Iska 16-09-2011 22:10 1754572

Цитата:

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

Так бывает. Может у человека ни TC, ни Far Manager'а нету. Посчитали, что для этого нужен скрипт. Хотя, на мой взгляд, не стоит мудрить скрипты для однократно выполняемых задач.

sov44 17-10-2011 00:09 1774939

Сломал голову. :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 1775538

Ни у кого нет идей?

sov44 18-10-2011 07:08 1775839

Решение найдено на другом форуме. Вопрос снят.

intersk 18-10-2011 10:50 1775936

нужно переименовать файлы: убрать одним разом в начале файлов цифры
(например
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 1776304

intersk,
Цитата:

Цитата ShaddyR
Функция Файл\Групповое переименование в TotalCommander. Предварительно делаешь поиск всех файлов по заданному шаблону, затем - "файлы на панель", после чего и воспользуйся оным функционалом. Все легко, интуитивно и достаточно визуализировано. »

если, конечно, не собираешься скриптовать подобную задачу - что имеет смысл в автоматизации одного и того же действия, а не каждый раз - нового.


Время: 14:59.

Время: 14:59.
© OSzone.net 2001-