![]() |
Переименование файлов
Добрый день! Помогите, пожалуйста, реализовать следующее:
Есть некий каталог с файлами. Нужно их переименовать согласно списку, который содержится в текстовом файле: строка 1 - текущее имя файла 1 строка 2 - новое имя файла 1 строка 3 - текущее имя файла 2 строка 4 - новое имя файла 2 и т.д. Затык в чтении второго параметра (во что переименовывать) для команды ren. |
shraybikus, пример файла приведите, есть ли там пути, расширения и т. д.
|
Пример файла:
14117 Приложение № 1.pdf 08278 Приложение № 2.xlsx 32545 Приложение № 3.docx 29721 Приложение № 4.docx 32730 Приложение № 5.docx 00142 Приложение № 6.docx Каталог, имена в котором надо "восстановить": 00142 08278 14117 22 29721 32545 32730 |
Код:
for /f "tokens=1-2" %%A in (не_помню_как_файл_указывать_в_качестве_источника,_вроде_просто_без_кавычек?) do ( а не удобнее имя против имени писать? ну этж убицца можно такой файл читать. кмк если строка имеет вид "старое имя" "новое имя" - гораздо удобнее. |
Powershell:
Код:
$path = 'd:\temp' |
Цитата:
14117 Приложение № 08278 Приложение № 32545 Приложение № 29721 Приложение № 32730 Приложение № 00142 Приложение № Для продолжения нажмите любую клавишу . . . Не взлетело. :( Можно и в одну строку, но в именах файла есть пробелы, как быть с ними? |
Цитата:
Код:
gc file.txt -r 2 |%{$_[0] + " ~ " + $_[1]} |
Если бы мне нужно было решение на ps, то я бы и поместил свой вопрос в соответствующий раздел.
Нужно именно CMD/BAT. Такая конструкция тоже не работает: Код:
@echo off Приложение № 1.pdf "b=" 08278 "b=" Приложение № 2.xlsx "b=" 32545 "b=" Приложение № 3.docx "b=" 29721 "b=" Приложение № 4.docx "b=" 32730 "b=" Приложение № 5.docx "b=" 00142 "b=" Приложение № 6.docx "b=" Для продолжения нажмите любую клавишу . . . Цикл выполняется дважды, и в переменную b похоже ничего не передается. |
это потому что для cmd пробел это тоже разделитель. можно попробовать вот так если названия каждое в своей строке:
Код:
for /f "tokens=1-2 delims=" %%A in (всё_ещё_не_помню_как_файл_указывать_в_качестве_источника,_вроде_просто_без_кавычек?) do ( Код:
for /f "tokens=1-2 delims=_" %%A in (всё_ещё_не_помню_как_файл_указывать_в_качестве_источника,_вроде_просто_без_кавычек?) do ( вариант файла с именами файлов:
Код:
14117_Приложение № 1.pdf Цитата:
|
Цитата:
Код:
@echo off Цитата:
ren 14117 ren Приложение № 1.pdf ren 08278 ren Приложение № 2.xlsx ren 32545 ren Приложение № 3.docx ren 29721 ren Приложение № 4.docx ren 32730 ren Приложение № 5.docx ren 00142 ren Приложение № 6.docx Для продолжения нажмите любую клавишу . . . |
Цитата:
Код:
Код: Выделить весь код |
Цитата:
|
shraybikus,
Цитата:
Цитата:
Если нужно переименовать файлы в конкретной папке
Код:
@Echo Off Если есть список папок
Код:
@Echo Off Пример файла restore.txt
Код:
14117 |
Вложений: 1
Цитата:
Попробовал переименовать, вроде команда строится правильно: Ren "C:\123\1\04238" "Приложение № 1.pdf" Ren "C:\123\1\10227" "Приложение № 2.xlsx" Ren "C:\123\1\03227" "Приложение № 3.docx" Ren "C:\123\1\32591" "Приложение № 4.docx" Ren "C:\123\1\08606" "Приложение № 5.docx" Ren "C:\123\1\30239" "Приложение № 6.docx" Для продолжения нажмите любую клавишу . . . но самого переименования - не происходит. Файл прикрепил. |
Цитата:
|
Без каких-либо проверок:
Код:
@echo off |
Цитата:
Но это всё мелочи, наверно. Кстати, забыл сказать, для чего мне это понадобилось. Есть такой файлобменник "безлимитный" usercloud с отличной скоростью на upload. В бесплатной версии там ограничение 49 мегабайт на файл, чтобы он не удалился через месяц неактивности. Я залил туда многотомный архив с томами по 49 мегабайт. Но и он тоже удалился спустя месяц, потому что? похоже, многотомный архив тоже воспринимается как один файл хоть об этом нигде не написано у них на сайте. Для того, чтобы попытаться обойти данное ограничение, я нашёл и допилил скрипт переименовывающий файлы случайными цифрами. Список переименования также пожал в RAR с паролем, и положил в ту же папку с многотомным архивом. Продолжаю вести наблюдение. :) Большое спасибо всем за помощь. |
Цитата:
Цитата:
Цитата:
|
Время: 10:14. |
Время: 10:14.
© OSzone.net 2001-