Войти

Показать полную графическую версию : Перевод скрипта архивации с CMD на VBS


Serg2010
27-05-2012, 21:21
Добрый вечер!

Помогите перевести скрипт на язык VBS.
Скрипт по заданному списку архивирует в целевую папку C:\ALL_BASES\Lenta\ базы ... Через семь дней (может меняться) архивы перезатирают сами себя ... Архивируемые папки (базы) заданы в виде списка (был вариант и с отдельным файлом), но с учетом бОльших возможностей языка VBS можно, наверное, оформить его в виде массива ... В скрипте ведется лог, где фильтруются положительные сообщения. В норме он ничего не содержит. Приветствуется некоторое улучшение (предложение) в скрипте.

cls
color 27
@echo off

set ArchDate=%Date:~6,4%%Date:~3,2%%Date:~0,2%
set Log=%~dp0%ArchDate%_LogBackup.txt
set ArchName=C:\ALL_BASES\Lenta\
set Filter=FINDSTR /V /B /I /C:Compressing /C:"7-Zip 4" /C:Scanning /C:"Creating archive" /C:"Everything is Ok" /R /C:$
set Num=0

For /F "Delims=" %%I In (%~dp0Numer.txt) Do Set Num=%%I
rem del %ArchName%*_%Num:~0,1%.7z
if %Num%==7 (set Num=1) else (set /a Num=Num+1)
echo %Num% >%~dp0Numer.txt

rem ---Список копируемых папок ----------------------------------------------------
rem Параметры: 1-что копируется, 2- добавка к имени архива , 3-флаг удаления после архивации, 4-если нужно исключаемые папки из архивирования

:,C:\Users\DOCUMENTS,DOCUMENTS,No,"-x!C:\Users\DOCUMENTS\Dir1 -x!C:\Users\DOCUMENTS\Dir2";
:,C:\1C_BUH\BUH,1C_Buh,No,,;
:,C:\1C_BUH\ZAR,1C_ZAR,No,,;
:,C:\Prog1\Dir1,Name1,No,,;
:,C:\Prog2\Dir2,Name2,No,,;
:,C:\Prog3\Dir3,Name3,No,,;
:,N:\Prog4\Dir4,Name4,No,,;
:,N:\Prog5\Dir5,Name5,No,,;
...
и т.д.

rem ---Цикл обработки списка копируемых папок для подстановки в процедуру---

pushd %~p0
FOR /F "delims=, eol=; tokens=1-5" %%i in (BackupBases.cmd) do if %%i==: Call :PROC %%j %%k %%l %%m
popd

GoTo End

rem ---Процедура копирования папок------------------------------------------

:PROC
cd /d %1
if exist %1\nul (
echo Идет копирование базы %1. Ждите ...
"C:\Program Files\7-zip\7z.exe" a -r %ArchName%%2_%Num% %1\* %~4 |%Filter% >>%Log%
cd ..
if "%3"=="Yes" rmdir %1 /s /q >>%Log%
)
Exit /b

:End

Iska
27-05-2012, 23:46
был вариант и с отдельным файлом »
Это самый правильный путь.

CyberMuesli
29-05-2012, 03:08
Помогите перевести скрипт на язык VBS. »
зачем

Serg2010
29-05-2012, 21:03
чтобы продолжить его улучшение и учиться лучшему ...

порой все конструкции батников и их нюансы выводят из себя ... Он хорош для "ломания" головы

CyberMuesli
30-05-2012, 02:33
работает же. зачем трогать

Devils Night
30-05-2012, 03:35
Меня кстати тоже заинтересовал этот вопрос, так как всё таки перевести скрипт архивации из CMD в VBS?

работает же. зачем трогать »Все говорят "работает же. зачем трогать", а ты возьми и сделай!
зачем трогать »
чтобы продолжить его улучшение и учиться лучшему ... »

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

Не в обиду.

ferget
30-05-2012, 06:29
Все говорят "работает же. зачем трогать", а ты возьми и сделай! »
не думаю что, если CyberMuesli переделает скрипт, то знания Serg2010 в vbs серьезно повысятся

А может ему в будущем понадобится оболочка, интерфейс или как там ещё называется, а не надоедливая командная строка. »
называется по разному, но с vbs мало связано

Serg2010
31-05-2012, 23:32
Никакого умысла тут нет, просто написал скрипт на смд, понял что говно, ирешил освоить wsh. Для начала свои батники перевести на него. Вот и всё




© OSzone.net 2001-2012