|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] сканирование папки на наличие файла и его архивация |
|
CMD/BAT - [решено] сканирование папки на наличие файла и его архивация
|
Пользователь Сообщения: 102 |
добрый день!
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 |
Пользователь Сообщения: 102
|
Профиль | Отправить PM | Цитировать спасибо огромное!!!
только, что бы не было лишней строчки: команду arj заменить с a на m @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:\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* 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 возник еще один вопросик, как можно теперь зациклить этот бат, куда поставить метку, что бы бат отрабатывался? ибо где бы я не поставил метку, вот эти файлы перестают обрабатываться ![]() |
Последний раз редактировалось Anufriev, 14-09-2012 в 06:46. Отправлено: 06:01, 14-09-2012 | #31 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 20131
|
Профиль | Отправить PM | Цитировать Цитата Anufriev:
Может просто в планировщик заданий? |
|
------- Отправлено: 08:33, 14-09-2012 | #32 |
Пользователь Сообщения: 102
|
Профиль | Отправить PM | Цитировать планировщик заданий нельзя использовать, из за тех же ЦБ стандартов
![]() |
Отправлено: 11:11, 14-09-2012 | #33 |
Новый участник Сообщения: 49
|
Профиль | Отправить PM | Цитировать @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 |
Отправлено: 11:17, 14-09-2012 | #34 |
Пользователь Сообщения: 102
|
Профиль | Отправить PM | Цитировать все, батник шикарен, спасибо огромное Bob256
|
Отправлено: 12:36, 14-09-2012 | #35 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|