|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] уникальное имя для файла |
|
CMD/BAT - [решено] уникальное имя для файла
|
Новый участник Сообщения: 5 |
Профиль | Отправить PM | Цитировать Добрый день!
Задача: с помощью БАТ файла копировать файл в указанную категорию и при этом присваивать ему уникальное имя, чтобы избежать повторения имен, а как следствие, затирания одного файла другим. Предполагаемый вариант решения: присвоить файлу имя состоящее из "текущая дата"-"текущее_время".jpg Желательно, чтобы время было указано с долями секунд, чтобы даже если за секунду копируется 2 файл, чтобы один не испортил другой Возможно есть и другие варианты решения, но я их не знаю. Помогите, пожалуйста. move C:\fest\1\*.jpg C:\fest\big\???.jpg Вот файл целиком: echo off :loop rem постояннос следит за появлением файлов в дериктории :test if exist C:\fest\*.jpg goto go goto test :go rem папка 1 нужна для того, чтобы программа не пропускала файлы move C:\fest\*.jpg C:\fest\1 rem изменяет размер файла, в конце строки стоит адрес конечного файла а после него - начального res -resize 180 135 -rotate 90 -sharpen 20 -out jpeg -o C:\fest\small\%%.jpg C:\fest\1\*.jpg rem переносим начальный файл в другую дерикторию, чтобы предотвратить его повторную обработку move C:\fest\1\*.jpg C:\fest\big\%date%.jpg goto loop |
|
Отправлено: 18:34, 01-09-2011 |
Ветеран Сообщения: 1758
|
echo off setlocal :loop for %%i in (c:\fest\*.jpg) do ( res -resize 180 135 -rotate 90 -sharpen 20 -out jpeg -o C:\fest\small\%%.jpg "%%i" call:move "%%i" ) goto:loop :move set "name=%date:.=%-%time::=%%~x1" move %1 "c:\fest\big\%name:,=%" PS. Не тестировал ЗЫЫ. Что за res? Синтаксис как у nconvert (Xnview) |
Отправлено: 18:55, 01-09-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 5
|
Профиль | Отправить PM | Цитировать Спасибо большое! Работает! Вы мне здорово помогли. Я и не думал, что всё так замечательно получится. И код весь переписали гораздо лучше чем у меня было. Правда, я в нем теперь половину команд не понимаю
Вот этот самый res: https://docs.google.com/viewer?a=v&p...EwN mM3&hl=ru А можно сделать: 1. чтобы файлы C:\fest\small\%%.jpg сразу же получали такое же имя как и "c:\fest\big\%name:,=%" . Так, чтобы имя большого файла и маленького совпадало. Я пытался как-то переделать сам, но у меня ничего не получилось. 2. Чтобы бат-файл запускался в фоновом режиме и не на экране ни на панели задач не отображался. Тогда я смогу просто в автозагрузку его закинуть и пользователю даже не нужно будет о нем беспокоиться. Ещё раз, спасибо Вам большое! |
Отправлено: 09:57, 02-09-2011 | #3 |
Ветеран Сообщения: 1758
|
Цитата sergserge:
echo off setlocal :loop for %%i in (c:\fest\*.jpg) do call:move "%%i" goto:loop :move set "name=%date:.=%-%time::=%%~x1" res -resize 180 135 -rotate 90 -sharpen 20 -out jpeg -o "C:\fest\small\%name:,=%" %1 move %1 "c:\fest\big\%name:,=%" Цитата sergserge:
Если по каким-то соображениям это не вариант, то можно с помощью vbs: ЗЫ. Я не знаю объем поступающих в обработку файлов, но может быть будет лучше вставить в :loop небольшую паузу? Такой мониторинг, в холостую, должен серьезно грузить проц. |
||
Последний раз редактировалось Foreigner, 02-09-2011 в 19:02. Отправлено: 18:49, 02-09-2011 | #4 |
Новый участник Сообщения: 5
|
Профиль | Отправить PM | Цитировать "ЗЫ. Я не знаю объем поступающих в обработку файлов, но может быть будет лучше вставить в :loop небольшую паузу? Такой мониторинг, в холостую, должен серьезно грузить проц."
Спасибо! Действительно, процессор был постоянно загружен на 100%. Поискал в интернете, нашел такое решение: есть некая программка sleep, говорят, она стандартная, скопировал её в папку Виндовз, а в скрипте написал вот так: :loop sleep 1 for %%i in (c:\fest\*.jpg) do call:move "%%i" goto:loop В общем, с вашей помощью все задачи, которые стояли передо мной выполнены. Ещё раз спасибо, всё работает замечательно. Прямо желание появилось какие-то программы писать. Только жалко, что больше ничего не нужно. Может заняться разработкой какого-нибудь вируса? |
|
Отправлено: 11:39, 03-09-2011 | #5 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Имя файла для прошивки БИОСа Acer Aspire 5741G | Zhandos | Поиск драйверов, прошивок и руководств | 2 | 16-06-2011 23:07 | |
CMD/BAT - [решено] Имя файла из строки копируемого файла. | Seryoga204 | Скриптовые языки администрирования Windows | 20 | 16-03-2011 21:15 | |
Интерфейс - Не обрезать имя файла | slfly | Microsoft Windows 2000/XP | 1 | 01-11-2009 12:17 | |
CMD/BAT - [решено] Как скопировать имя файла из текстового файла в код батника и т.д. | Nun-Nun | Скриптовые языки администрирования Windows | 6 | 13-05-2009 13:28 | |
Как получить имя текущего пользователя для использования его в имени файла | Denchik | Автоматическая установка Windows 2000/XP/2003 | 1 | 25-01-2006 22:33 |
|