Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
sysadmin:scripts:bat:arhive [15:12:2024 00:42] School Sysadminsysadmin:scripts:bat:arhive [06:11:2025 15:07] (текущий) School Sysadmin
Строка 1: Строка 1:
-====== Архив каталога ====== +====== Архивирование каталога ====== 
 +===== Архивировние каталога с файлами ===== 
 +==== Парметры передаются в скрипте ====
 <file bash arhive.bat> <file bash arhive.bat>
 cls cls
Строка 26: Строка 27:
 for /d %%A in (%_in%\*) do "%_arcpath%\7za.exe" a -t7z -mx=9 -r -mhe -- "%_out%\%%~nxA.7z" "%%A" for /d %%A in (%_in%\*) do "%_arcpath%\7za.exe" a -t7z -mx=9 -r -mhe -- "%_out%\%%~nxA.7z" "%%A"
 </file> </file>
 +==== Параметры передаются в строке запуска ====
 +arch.bat %1 %2 %3 %4 %5, где:\\
 +%1 - режим работы с локальными дисками (local) или с сетевыми (samba);\\
 +%2 - каталог источник (ИЗ);\\
 +%3 - каталог назначения (В);\\
 +%4 - Имя пользователя для доступа к сетевому ресурсу;\\
 +%5 - Пароль для доступа к сетевому ресурсу.\\
 +<file bash arch.bat>
 +@echo off
 +SetLocal EnableExtensions
 +chcp 866 >nul
 +rem Версия 0.3
 +rem Возможность передавать в скрипт параметры
 +rem Каталог источник и назначения
 +cls
 +title .: Архивация каталогов с файлами v0.3 :.
 +
 +rem Режим производительности ПК. Узнайте свой GUID командой powercfg /L
 +set balance=381b4222-f694-41f0-9685-ff5bb260df2e
 +set max=8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
 +
 +rem Каталог со скриптом, каталог запуска
 +set _cns=%cd%
 +
 +rem Каталог с 7z, изменить в случае необходимости
 +set _7zpath=%cd%\7z\x64
 +rem Удаление пробела вначале
 +rem set _time=%_time: =%
 +rem Замена пробела вначале на 0
 +rem set _time=%_time: =0%
 +set _date=%date:~0,2%%date:~3,2%%date:~6,4%
 +set _time=%time:~0,2%%time:~3,2%%time:~6,2%
 +set _date=%_date: =0%
 +set _time=%_time: =0%
 +set _date_dot=%date:~0,2%.%date:~3,2%.%date:~6,4%
 +set _time_colon=%time:~0,2%:%time:~3,2%:%time:~6,2%
 +set _date_dot=%_date_dot: =0%
 +set _time_colon=%_time_colon: =0%
 +
 +rem Режм работы скрипта
 +rem local - работа с локальными дисками
 +rem samba - работа с сетевым ресурсом
 +set _mode=%~1
 +
 +rem Проверка режима работы
 +if "%_mode%"=="local"
 +goto lb_start
 +)
 +if "%_mode%"=="samba" (
 +goto lb_start
 +)
 +set error_txt="Не задан режим работы (local или samba)"
 +goto lb_error
 +
 +:lb_start
 +
 +rem Каталог источник с именем диска "c:\temp"
 +set _in=%~2
 +if %_in:~-1%==\ set _in=%_in:~0,-1%
 +if "%~2" equ "" (
 +set error_txt="Не задан каталог источник (ИЗ)"
 +goto lb_error
 +)
 +
 +rem Каталог получатель с именем диска "d:\temp" или сетевой ресурс.
 +rem Сетевой ресурс и каталог должен существовать "z:\nas\exchange\1c"
 +set _out=%~3
 +if %_out:~-1%==\ set _out=%_out:~0,-1%
 +if "%~3" equ "" (
 +set error_txt="Не задан каталог назначение (В)"
 +goto lb_error
 +)
 +
 +rem Извлечение буквы диска для подключения сетевого ресурса
 +for %%A in ( "%~3" ) do (
 +set _dl=%%~dA
 +set _path=%%~pA%%~nxA
 +)
 +
 +rem Включение максимальной производительности ПК
 +set _power=%max%
 +call :lb_power
 +
 +if "%_mode%" equ "local" ( call :lb_inc_data & call :lb_archiving & call :lb_power & exit /b )
 +
 +rem Имя пользователя
 +set _un=%~4
 +if "%~4" equ "" (
 +set error_txt="Укажите имя пользователя для доступа к сетевому ресурсу"
 +goto lb_error
 +)
 +
 +rem Пароль пользователя
 +set _up=%~5
 +if "%~5" equ "" (
 +set error_txt="Укажите пароль пользователя для доступа к сетевому ресурсу"
 +goto lb_error
 +)
 +
 +if "%_mode%" equ "samba" (
 +call :lb_inc_data
 +set _out=%_dl%
 +net use %_dl% "\%_path%" /user:"%_un%" "%_up%" /persistent:no
 +
 +if errorlevel=1 (
 +cls
 +set error_txt="Не удалось подключиться к сетевому ресурсу %_out%"
 +goto lb_error
 +)
 +call :lb_archiving
 +
 +rem Отключение сетевого ресурса
 +echo
 +net use /del %_dl% /y
 +)
 +exit
 +
 +:lb_inc_data
 +
 +chcp 866 >nul
 +echo ----------------------------------------------------
 +echo Режим работы скрипта: %_mode%
 +echo Дата: %_date%
 +echo Время: %_time%
 +echo Каталог c программой 7z: %_7zpath%
 +echo Каталог со скриптом (каталог запуска): %_cns%
 +echo Каталог источник (из): %_in%
 +echo Каталог назначения (в): %_out%
 +if %_mode%==samba (
 +echo Имя пользователя: %_un%
 +echo Пароль пользователя "%_up%"
 +echo Каталог с сетевым ресурсом: %_path%
 +echo net use %_dl% \%_path% /user:%_un% "%_up%" /persistent:no
 +)
 +echo ----------------------------------------------------
 +rem pause
 +exit /b
 +
 +:lb_archiving
 +if not exist "%_out%\logs" (
 +mkdir %_out%\logs
 +)
 +if not exist "%_cns%\logs" (
 +mkdir %_cns%\logs
 +)
 +chcp 1251 >nul
 +echo %_date_dot% - %_time_colon% >> "%_out%"\logs\archiving.txt
 +echo %_date_dot% - %_time_colon% >> "%_cns%"\logs\archiving.txt
 +
 +for /d %%A in ("%_in%"\*) do (
 +"%_7zpath%\7za.exe" a -t7z -mx=9 -ssw -r -mhe -- "%_out%\%_date%-%_time%\%%~nxA.7z"  "%%A"
 +
 +echo %_out%\%_date%-%_time%\%%~nxA.7z >> "%_out%\logs\archiving.txt"
 +rem echo %_out%\%_date%-%%~nxA.7z >> "%_cns%"\logs_archiving.txt
 +chcp 866 >nul
 +)
 +rem Создание пустой строки в лог файле
 +echo. >> "%_out%"\logs\archiving.txt
 +echo. >> "%_cns%"\logs\archiving.txt
 +chcp 866 >nul
 +set _power=%balance%
 +call :lb_power
 +exit /b
 +
 +:lb_error
 +cls
 +color 0e
 +echo %error_txt%
 +chcp 1251 >nul
 +echo %_date_dot% >> "logs\error.txt"
 +echo %_time_colon% - %error_txt% >> "logs\error.txt"
 +chcp 866 >nul
 +TIMEOUT /T 3 >nul
 +cls & color
 +exit /b
 +
 +:lb_power
 +rem Управление производительностью
 +powercfg -setactive %_power%
 +exit /b
 +</file>
 +
 +Что бы запустить в "Планировщике заданий" необходимо добавить новое задание\\
 +Действия - Запуск программы\\
 +Программа или сценарий - cmd.exe\\
 +Добавить аргумент (если в сети)\\
 +<code>/c start "" c:\script\arch.bat samba "c:\patch" "z:\patch" Vasay Pupkin</code> или (если локально)<code>/c start "" c:\script\arch.bat local "c:\patch" "d:\patch"</code>\\
 +Рабочая папка - c:\script
  • Последнее изменение: 15:12:2024 00:42