|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Переименование файлов с указанием порядкового номера |
|
CMD/BAT - [решено] Переименование файлов с указанием порядкового номера
|
Ветеран Сообщения: 1014 |
Есть количество файлов которые нужно переименовать.
Прошу помощи - нужен универсальный (по возможности) батник который будет переименовывать файлы. Важно не то, какое будет текстовое название ( по умолчанию используется исходное название и , как второй вариант - оно должно задаваться пользователем), а то, чтобы в начале названия присутствовал порядковый номер. Например: textA_textB_text001.xxx textA_textB_text002.xxx ....................................... на 001_textA_textB.xxx 002_textA_textB.xxx ................................ чтобы при переименовании файла сохранялся свой оригинальный порядковый номер. Например так: Спасибо! |
|
Отправлено: 13:13, 30-04-2011 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата shao:
|
|
Отправлено: 22:21, 07-05-2011 | #21 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 1014
|
Профиль | Отправить PM | Цитировать |
Отправлено: 23:13, 07-05-2011 | #22 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Тогда уж, пожалуйста, доверьтесь моему опыту и в таком суждении: «Доверяй, но проверяй»
![]() |
Отправлено: 23:37, 07-05-2011 | #23 |
Ветеран Сообщения: 1273
|
Профиль | Отправить PM | Цитировать Цитата shao:
Второй вариант предпочтительней и рекомендуется к применению. Параметр, переданный в процедуру или скрипт и содержащий символ пробела, обязан быть заключен в двойные кавычки, чтобы CMD не интерпретировал этот параметр как отдельные сегменты. Например: batchfile.bat C:\Program Files (x86) - CMD интерпретирует это как передачу в скрипт 3 параметров %1 будет содержать - C:\Program %2 будет содержать - Files %3 будет содержать - (x86) batchfile.bat "C:\Program Files (x86)" - CMD интерпретирует это как передачу в скрипт 1 параметра %1 будет содержать - "C:\Program Files (x86)" ... call:ren "%%i" - передача функции :ren 1 параметра %i, содержащего (без)пробельное имя txt-файла %1 будет содержать - "имя файла.txt" batchfile.bat "C:\Program Files (x86)" %~1 будет содержать - C:\Program Files (x86) Зачем избавляться: echo %1\Opera - вернет "C:\Program Files (x86)"\Opera. Неправильный путь, теперь представьте, если вместо echo будет команда, работающая с путями, например, Dir. echo %~1\Opera - вернет C:\Program Files (x86)\Opera. Теперь путь верен, но для команд, работающих с путями (читай - параметрами, содержащими символы пробела), такой путь будет интерпретирован, как передачу команде нескольких параметров, разделенных символом пробела, поэтому снова заключаем все это добро в кавычки: dir "%~1\Opera" ren "%~1" … |
|
Отправлено: 14:06, 08-05-2011 | #24 |
Ветеран Сообщения: 1014
|
Профиль | Отправить PM | Цитировать El Sanchez, спасибо за объяснения! Порой, таких детальных обЪяснений не хватает здесь !
Но получается какая-то фигня у меня , ребята.... Этот код работает на текстовых файлах. Переименовывает отлично. @echo off setlocal for %%i in (*.XXX) do call:ren "%%i" goto:eof :ren set /a cnt+=1 set "pref=00%cnt%" set "name=%~n1" ren "%~1" "%pref:~-2%_%name:~16%%~x1" Если указываю в конце кода "EXIT"или "EXIT /B" переименовывает все вот так : Ставлю паузу в конце - переименовывает (по одному при моём участии) правильно. Но не по порядку следования файлов. А в разброс... |
Отправлено: 17:53, 08-05-2011 | #25 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 18:27, 08-05-2011 | #26 |
Ветеран Сообщения: 1014
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Блин, на компьютере на харде не додумался это сделать... Интересно, а разве это может как-то влиять на работу батника ?!!! Имена файлов: |
|
Отправлено: 20:55, 08-05-2011 | #27 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата shao:
Т.е., наподобие [не проверялось!]: |
|
Отправлено: 21:37, 08-05-2011 | #28 |
Ветеран Сообщения: 1014
|
Профиль | Отправить PM | Цитировать Спасибо Iska !
Я сейчас не смогу проверить. Завтра.... И ещё : команда " /o:n " , нсколько понимаю сортирует по имени. А что делает команда " /b " ? Из справки, по ней ничего не понял.... |
Отправлено: 22:14, 08-05-2011 | #29 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Условно говоря, отсекает вводную, суммарную и детальную информацию:
оставляя только имена файлов: Причём, при использовании параметра «/s» («включая подкаталоги») имена файлов будут полными: |
Отправлено: 00:17, 09-05-2011 | #30 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - [решено] Смена порядкового номера монитора | M1ndW0rk | Microsoft Windows 2000/XP | 19 | 04-12-2020 23:39 | |
CMD/BAT - [решено] Список файлов из поддиректорий с указанием полного пути | Sat_Kelman | Скриптовые языки администрирования Windows | 4 | 20-03-2020 17:17 | |
CMD/BAT - Переименование файлов. | gen0m.rsw | Скриптовые языки администрирования Windows | 1 | 15-10-2010 19:15 | |
Как сделать наглядный листинг папок и файлов с указанием всех прав доступа | chickaboo | Microsoft Windows NT/2000/2003 | 10 | 15-02-2008 16:54 | |
переименование файлов | mask | Программирование и базы данных | 6 | 20-05-2003 00:53 |
|