Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Переименование файлов по маске

Ответить
Настройки темы
CMD/BAT - Переименование файлов по маске

Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


День добрый. Только учусь. Перерыл все форумы, но особо в тестами ни к чему не пришел. Очень надеюсь на вашу аудиторию

Цель такая:

В корневом каталоге Имеются 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

 

Ветеран


Contributor


Сообщения: 26438
Благодарности: 7689

Профиль | Отправить PM | Цитировать


Проще создавать папки с именем даты в каталоге «shots» и перемещать (а не копировать) туда файлы.

Отправлено: 18:28, 22-02-2014 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Цитата Iska:
Проще создавать папки с именем даты в каталоге «shots» и перемещать (а не копировать) туда файлы. »
Это намного проще, но так нельзя(

Отправлено: 16:13, 23-02-2014 | #3


Ветеран


Сообщения: 874
Благодарности: 575

Профиль | Отправить 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
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Файл не найден
Файл не найден

Отправлено: 16:11, 24-02-2014 | #5


Ветеран


Сообщения: 874
Благодарности: 575

Профиль | Отправить PM | Цитировать


Я немного подредактровал код, но думаю, что проблема в другом: либо пакетный файл находится не в одной директории с папкой "shots", либо эта папка называется по-другому, либо эта папка скрытая и (или) системная.

Отправлено: 17:07, 24-02-2014 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Переименование файлов по маске

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход