|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Переименование файлов по маске |
|
CMD/BAT - Переименование файлов по маске
|
Новый участник Сообщения: 10 |
День добрый. Только учусь. Перерыл все форумы, но особо в тестами ни к чему не пришел. Очень надеюсь на вашу аудиторию
Цель такая: В корневом каталоге Имеются 2 папки: system и shots. При каждом запуске bat-a все jpg ( появляются в папке system ежедневно автоматически с именем shot00001.jpg ) они копируются в /shots, но так, как файлы имеют одинаковые имена они не добавляются после первого дня. нужно сделать так: сначала, чтобы в папке /shots все имеющеися файлы приводились в такой вид Shot_X_001.jpg ( где X - Дата создания! ) затем соответственно с /system копироваться новые файлы будут легко for %%f in (shots\*.jpg) do ren "%%f" %date%*.jpg не работает, да много чего пробЫвал. Очень надеюсь на вас) спасибо заранее! |
|
Отправлено: 17:04, 22-02-2014 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Проще создавать папки с именем даты в каталоге «shots» и перемещать (а не копировать) туда файлы.
|
Отправлено: 18:28, 22-02-2014 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 10
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Iska:
|
|
Отправлено: 16:13, 23-02-2014 | #3 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать @echo off for /f "tokens=1,2,3 delims=./" %%f in ("%date%") do ( set d=%%h.%%g.%%f ) setlocal enabledelayedexpansion for /f "tokens=2,3 delims=_" %%f in (' dir /a-d /b /o-n shots^| findstr Shot_[0-9]*\.[0-1][0-9]\.[0-3][0-9]_[0-9]*\.jpg ') do ( if "%%f"=="%d%" ( for /f "tokens=* delims=0" %%h in ("%%g") do ( set n=%%h set n=!n:.jpg=! goto:# )) else ( set n=0 goto:# )) :# for /f "tokens=*" %%f in (' dir /a-d /b shots^| findstr shot[0-9]*\.jpg ') do ( set /a n+=1 if !n! lss 10 ( ren shots\%%f Shot_%d%_00!n!.jpg ) else ( if !n! lss 100 ( ren shots\%%f Shot_%d%_0!n!.jpg ) else ( if !n! lss 1000 ( ren shots\%%f Shot_%d%_!n!.jpg ) else ( echo ЌҐў®§¬®¦*® ЇҐаҐЁ¬Ґ*®ў*вм Ї® ¤***®¬г *«Ј®аЁв¬г Ў®«ҐҐ 999 д*©«®ў ў бгвЄЁ. echo Ќ*¦¬ЁвҐ «оЎго Є«*ўЁиг ¤«п ўл室*. pause>nul goto:## )))) :## endlocal exit /b |
Последний раз редактировалось Georgio, 24-02-2014 в 16:45. Отправлено: 05:08, 24-02-2014 | #4 |
Новый участник Сообщения: 10
|
Профиль | Сайт | Отправить PM | Цитировать Файл не найден
Файл не найден |
|
Отправлено: 16:11, 24-02-2014 | #5 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать Я немного подредактровал код, но думаю, что проблема в другом: либо пакетный файл находится не в одной директории с папкой "shots", либо эта папка называется по-другому, либо эта папка скрытая и (или) системная.
|
Отправлено: 17:07, 24-02-2014 | #6 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Переименование файла по маске. | Damien_here | Скриптовые языки администрирования Windows | 5 | 13-06-2017 12:51 | |
CMD/BAT - [решено] Переименование файлов с заменой символов по маске | Constantant | Скриптовые языки администрирования Windows | 41 | 29-03-2016 03:40 | |
Любой язык - скрипт по копирвоанию и последующего удаления файлов по маске названия файла | santey007 | Скриптовые языки администрирования Windows | 19 | 22-12-2015 10:43 | |
CMD/BAT - [решено] Копирование и переименование файла по особой маске | DARK-Silver666 | Скриптовые языки администрирования Windows | 5 | 20-12-2012 21:22 | |
CMD/BAT - розархивация файлов по маске с архива отсортированого по датах | VitHAK | Скриптовые языки администрирования Windows | 1 | 28-12-2009 11:07 |
|