|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] сканирование папки на наличие файла и его архивация |
|
CMD/BAT - [решено] сканирование папки на наличие файла и его архивация
|
Пользователь Сообщения: 102 |
Профиль | Отправить PM | Цитировать
добрый день!
1. есть такая задачка, нужно что бы батник сканировал папку с:\test\ 1.1. при обнаружении файла формата SBC000000000_000000000000_0000000000000000_100 или SBC000000000_000000000000_0000000000000000_200 нужно запаковать его в архив arj формата A12345GGMMDDnn.arj 1.2. при обнаружении файла формата SBC000000000_000000000000_0000000000000000_300 или SBC000000000_000000000000_0000000000000000_400 нужно запаковать его в архив arj формата B12345GGMMDDnn.arj где: 0 переменное число; 2. отработать команду "C:\ARJ32\ARJ32.exe m -e C:\test\#(зависит от пунктов 1.1 и 1.2)12345GGMMDDnn.arj C:\test2\SBC*_*_*_1(зависит от пунктов 1.1 и 1.2)*" GGMMDD - год, месяц, день; nn - порядковый номер созданного файла в течение дня (2 символа). Нумерация начинается с 01. Батник который получился: @echo off setlocal enabledelayedexpansion :L0001 set GGMMDD=%date:~-2,2%%date:~3,2%%date:~0,2% call :SUB0001 C:\test\A12345%GGMMDD% C:\test2\SBC*_*_*_1* C:\test2\SBC*_*_*_2* call :SUB0001 C:\test\B12345%GGMMDD% C:\test2\SBC*_*_*_3* C:\test2\SBC*_*_*_4* ping 127.0.0.1>nul goto L0001 exit /b 0 :SUB0001 for %%F in (%2 %3) do (for /L %%N in (99,-1,1) do (if %%N LEQ 9 (set NN=0%%N) else set NN=%%N if not exist "%1!NN!.arj" set NewName=%1!NN!.arj ) C:\ARJ32\ARJ32.exe m -e "!NewName!" "%%~dpnxF" ) exit /b 0 |
|
Отправлено: 14:57, 12-09-2012 |
Новый участник Сообщения: 49
|
Профиль | Отправить PM | Цитировать Хотя GGMMDD по идее должно звучать YYMMDD...
|
Отправлено: 20:32, 12-09-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 102
|
Профиль | Отправить PM | Цитировать создает файл с именем nil, архив не создает
с текстом: Том в устройстве C не имеет метки. Серийный номер тома: E1AB-11B2 Содержимое папки C:\test Содержимое папки C:\test да и если честно, батник какой то странный... |
Отправлено: 06:26, 13-09-2012 | #3 |
Ветеран Сообщения: 20119
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 07:14, 13-09-2012 | #4 |
Новый участник Сообщения: 49
|
Профиль | Отправить PM | Цитировать Цитата Bob256:
|
||
Последний раз редактировалось Bob256, 13-09-2012 в 09:41. Отправлено: 09:29, 13-09-2012 | #5 |
Ветеран Сообщения: 20119
|
Профиль | Отправить PM | Цитировать @echo off
setlocal enabledelayedexpansion for /f "tokens=1,2,3 delims=." %%I in ('date /t') do ( set /a GGMMDD="%%K - (%%K / 100) * 100" set GGMMDD=!GGMMDD!%%J%%I ) call :SUB0001 C:\testA12345 C:test2SBC*_*_*_1* C:test2SBC*_*_*_2* call :SUB0001 C:\testB12345 C:test2SBC*_*_*_3* C:test2SBC*_*_*_4* exit /b 0 :SUB0001 (dir %2 %3>nil)&&( for /L %%N in (99,-1,1) do (if %%N LEQ 9 (set NN=0%%N) else set NN=%%N if not exist %1%GGMMDD%!NN!.arj set NewName=%1%GGMMDD%!NN!.arj ) C:\ARJ32ARJ32.exe a -e %NewName% %2 %3 ) exit /b 0 Не очень понятно... Это ирония или просто великий и могучий? |
------- Отправлено: 09:41, 13-09-2012 | #6 |
Пользователь Сообщения: 102
|
Профиль | Отправить PM | Цитировать все не так запущено слеши не помогают точнее не в них дело
архиватор пытается найти SBC*_*_*_1*.ARJ получается %NewName% он не видит то что пишет cmd: Цитата:
|
|
Последний раз редактировалось Anufriev, 13-09-2012 в 09:50. Отправлено: 09:44, 13-09-2012 | #7 |
Ветеран Сообщения: 20119
|
Профиль | Отправить PM | Цитировать |
------- Последний раз редактировалось yurfed, 13-09-2012 в 09:52. Отправлено: 09:45, 13-09-2012 | #8 |
Пользователь Сообщения: 102
|
Профиль | Отправить PM | Цитировать потому что это требование организации куда будет отправляться файл, и поспорить с этим нельзя
|
Отправлено: 09:51, 13-09-2012 | #9 |
Новый участник Сообщения: 49
|
Профиль | Отправить PM | Цитировать |
Отправлено: 09:52, 13-09-2012 | #10 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Батник проверяющий наличие файла на сервере? | ofcoss | Скриптовые языки администрирования Windows | 3 | 29-07-2009 06:03 | |
CMD/BAT - [решено] Проверить наличие файла с текущей датой. | OlegStarov | Скриптовые языки администрирования Windows | 4 | 21-04-2009 12:11 | |
CMD/BAT - Как из бат-файла проверить наличие файла по ссылке, не скачивая файл ? | mitiya | Скриптовые языки администрирования Windows | 2 | 27-06-2008 20:50 | |
Разное - Архивация файла | UnDRaux | Microsoft Windows 2000/XP | 3 | 03-05-2008 00:10 | |
Сканирование HDD на наличие bad секторов | dimon55 | Хочу все знать | 5 | 15-12-2003 15:36 |
|