![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Переименование файлов |
|
CMD/BAT - [решено] Переименование файлов
|
Новый участник Сообщения: 17 |
Добрый день! Помогите, пожалуйста, реализовать следующее:
Есть некий каталог с файлами. Нужно их переименовать согласно списку, который содержится в текстовом файле: строка 1 - текущее имя файла 1 строка 2 - новое имя файла 1 строка 3 - текущее имя файла 2 строка 4 - новое имя файла 2 и т.д. Затык в чтении второго параметра (во что переименовывать) для команды ren. |
|
Отправлено: 12:09, 27-02-2020 |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать Цитата shraybikus:
и для которого нужны пары имен в одну строку через подчеркивание |
|
Отправлено: 16:08, 27-02-2020 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 17
|
Профиль | Отправить PM | Цитировать Цитата Elven:
|
|
Отправлено: 16:14, 27-02-2020 | #12 |
Ветеран Сообщения: 2735
|
Профиль | Отправить PM | Цитировать shraybikus,
Цитата shraybikus:
Цитата DJ Mogarych:
Если нужно переименовать файлы в конкретной папке
@Echo Off
cls
>nul Chcp 1251
Set "BoxIn=Z:\Box_In\29721"
Set "RenFile=Z:\Box_In\restore.txt"
Call :ReInDir "%RenFile%" "%BoxIn%"
pause
Exit /B 0
:ReInDir
If Not Exist "%~2\*.*" Exit /B 1
Set /A i=0
FOR /F "usebackq delims=" %%s IN (`2^>nul More "%~1"`) Do (
Set /A i+=1
Call :ReFile %%i%% "%%s" %2
)
Exit /B
:ReFile
If %1==1 Set "OldName=%~2" &Exit /B
Set "NewName=%~2"
If Exist "%~3\%OldName%" Echo Ren "%~3\%OldName%" "%NewName%"
Set /A i=0
Exit /B 0
Если есть список папок
@Echo Off
cls
>nul Chcp 1251
Set "BoxIn=Z:\Box_In"
Set "RenFile=Z:\Box_In\restore.txt"
Set SubDir="00142" "08278" "14117" "22" "3333333" "29721" "32545" "32730"
For %%d In (%SubDir%) Do Call :ReInDir "%RenFile%" "%BoxIn%\%%~d"
pause
Exit /B 0
:ReInDir
If Not Exist "%~2\*.*" Exit /B 1
Set /A i=0
FOR /F "usebackq delims=" %%s IN (`2^>nul More "%~1"`) Do (
Set /A i+=1
Call :ReFile %%i%% "%%s" %2
)
Exit /B
:ReFile
If %1==1 Set "OldName=%~2" &Exit /B
Set "NewName=%~2"
If Exist "%~3\%OldName%" Echo Ren "%~3\%OldName%" "%NewName%"
Set /A i=0
Exit /B 0
|
||
------- Последний раз редактировалось megaloman, 27-02-2020 в 18:32. Отправлено: 16:34, 27-02-2020 | #13 |
Новый участник Сообщения: 17
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
Попробовал переименовать, вроде команда строится правильно: 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" Для продолжения нажмите любую клавишу . . . но самого переименования - не происходит. Файл прикрепил. |
|
Отправлено: 16:53, 27-02-2020 | #14 |
Новый участник Сообщения: 17
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
|
|
Отправлено: 17:03, 27-02-2020 | #15 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Без каких-либо проверок:
@echo off
setlocal enableextensions enabledelayedexpansion
set sListFile=list.txt
for /f "usebackq delims=" %%i in (`type "%sListFile%" ^| find.exe /v /c ""`) do set /a iCount = %%~i / 2
<"%sListFile%" (
for /l %%i in (1, 1, %iCount%) do (
set /p sSourceFile=
set /p sDestFile=
echo ren "!sSourceFile!" "!sDestFile!"
)
)
endlocal
exit /b 0
|
Последний раз редактировалось Iska, 28-02-2020 в 18:05. Отправлено: 18:27, 27-02-2020 | #16 |
Новый участник Сообщения: 17
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Но это всё мелочи, наверно. Кстати, забыл сказать, для чего мне это понадобилось. Есть такой файлобменник "безлимитный" usercloud с отличной скоростью на upload. В бесплатной версии там ограничение 49 мегабайт на файл, чтобы он не удалился через месяц неактивности. Я залил туда многотомный архив с томами по 49 мегабайт. Но и он тоже удалился спустя месяц, потому что? похоже, многотомный архив тоже воспринимается как один файл хоть об этом нигде не написано у них на сайте. Для того, чтобы попытаться обойти данное ограничение, я нашёл и допилил скрипт переименовывающий файлы случайными цифрами. Список переименования также пожал в RAR с паролем, и положил в ту же папку с многотомным архивом. Продолжаю вести наблюдение. ![]() Большое спасибо всем за помощь. |
|
Отправлено: 09:22, 28-02-2020 | #17 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата shraybikus:
Цитата shraybikus:
Цитата shraybikus:
|
|||
Отправлено: 18:08, 28-02-2020 | #18 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Переименование файлов | f1rstonlyone@vk | Скриптовые языки администрирования Windows | 6 | 20-12-2017 16:20 | |
CMD/BAT - переименование файлов | Alexander_88 | Скриптовые языки администрирования Windows | 10 | 25-07-2017 21:30 | |
CMD/BAT - Переименование файлов | gremlintv2 | Скриптовые языки администрирования Windows | 3 | 27-06-2016 23:42 | |
CMD/BAT - Переименование файлов | Verilog | Скриптовые языки администрирования Windows | 4 | 10-12-2014 14:55 | |
Переименование файлов | B1010 | Видео и аудио: обработка и кодирование | 0 | 28-09-2014 11:38 |
|