[Server] [No Comment] Пакетные файлы BAT or CMD

Тема в разделе "Windows", создана пользователем Шейла, 25 дек 2009.

Модераторы: ADMiNZ, Den1xxx
  1. Шейла

    Шейла

    Регистр.:
    12 май 2008
    Сообщения:
    565
    Симпатии:
    158
    Предлагаю размещать пакетные файлы, которые облегчают aдминистрирование серверов.

    Обсуждение запрещено!
    Есть вопрос по скрипту?
    Задай его отдельной теме. Или автору по ЛС.
    Выкладываеш скрипт, составь для него подробное описание, в коментариях в самом скрипте.
    И укажи на какой системе этот скрипт стабильно работает.

    Пакетный файл для WIN 2008.
    Работает на сервере редакции Standart, SP2 + все необходимые KB.

    Этот пакетный файл, выполняет Архивацию системного диска в моем случае это "С", на разшаренную в сети папку.
    Архивация выполняеться для того, чтоб в случае падения системы, можно было восстановиться из архива.

    Скрипт проверяет кол-во сохранённых бекапов.
    Если кол-во бекапов превышает установленный лимит удаляет самый старый бекап, и выполняет повторно проверку на кол-во бекапов.
    Если кол-во бекапов не превышает установленный лимит выполняеться архивация системы.

    В планировщике, назначена задача по расписанию, которая его запускает.

    Важное замечание, спасибо lift
    Для того, чтоб скрипт коректно работал с русскими символами, в частности в лог файле,
    скрипт должен быть сохранен в кодировке utf or DOS.

    Код:
    ::Включаем расширеный режим обработки команд.
    ::------------------------------------------
    Echo Off
    SetLocal EnableExtensions
    SetLocal EnableDelayedExpansion
    ::------------------------------------------
    ::Сначала удаляем, затем подключаем сетевой диск.
    ::------------------------------------------
    ::У меня это диск S:
    NET USE /D S: /Y
    NET USE S: \\ShareServerName\ShareFolderName /USER:NameUser PasswordUser
    ::------------------------------------------
    ::Задаем все необходимые переменные.
    ::Переходим в корень подключенного сетевого диска.
    ::------------------------------------------
    SET $Disk=S:
    SET $TempFile=List.txt
    SET $Unit=30  ::Этот параметр определяет кол-во хранящихся бекапов.
    SET $BackUpLog=E:\Log_BackUp_System-%DATE:~-10%.txt
    CD /D %$Disk%
    ::------------------------------------------
    ::Подсчитываем кол-во каталогов на диске и определяем самый старый.
    ::Задаем параметры переменным.
    ::------------------------------------------
    :Scan_Now
    DIR %$Disk% /B /A:D /O-D>%$Disk%\%$TempFile%
    SET $Total=0
    FOR /F %%D in (%$Disk%\%$TempFile%) do (
    SET $Old_Dir=%%D
    SET /A $Total+=1
    )
     
    ::------------------------------------------
    ::Удаляем временный файл.
    ::------------------------------------------                     
    DEL %$Disk%\%$TempFile%
    ::------------------------------------------
    ::Определям что делать, если каталогов много, старый удаляем.
    ::Если каталогов допустимое кол-во, приступаем к архивированию.
    ::------------------------------------------
    IF /I %$Total% LEQ %$Unit% (GOTO Start_Back_Up
    ) ELSE (
    RMDIR /S /Q %$Old_Dir%)
    GOTO Scan_Now
    ::------------------------------------------
    ::Создаем каталог по текущей дате для бэкапа.
    ::Запускаем WBADMIN.
    ::------------------------------------------
    :Start_Back_Up
    MD %$Disk%\%DATE:~-10%
    WBADMIN START BACKUP -backupTarget:\\ShareServerName\ShareFolderName\%DATE:~-10% -include:C: -allCritical -quiet >> %$BackUpLog%
    ::------------------------------------------
    EXIT
    ::Всё конец!!!
     
    Alex KGB и goldshady нравится это.
  2. 3dkiller

    3dkiller Создатель

    Регистр.:
    29 окт 2015
    Сообщения:
    10
    Симпатии:
    4
    Для win7, полная очистка временных файлов и кэша системы

    Код:
    @echo off
    TITLE Repairing Inf Cache
    rem change to drive where windows runs
    %SystemDrive%
    rem change to the \windows\inf folder
    cd %SystemRoot%\inf
    
    rem create random directory for backup
    set FOLDERNAME=infbk-%RANDOM%
    mkdir %FOLDERNAME%
    
    rem list of files which need to be removed
    set FILE1=INFPUB.DAT
    set FILE2=INFSTOR.DAT
    set FILE3=INFSTRNG.DAT
    set FILE4=INFCACHE.*
    set FILE5=SETUPAPI.*
    
    rem take ownership of the first file
    takeown /f %FILE1%
    rem grant full control to 'administrators'
    icacls %FILE1% /grant administrators:F /t
    rem move it to the backup folder
    move %FILE1% %FOLDERNAME%
    
    rem same for the other files
    takeown /f %FILE2%
    icacls %FILE2% /grant administrators:F /t
    move %FILE2% %FOLDERNAME%
    
    takeown /f %FILE3%
    icacls %FILE3% /grant administrators:F /t
    move %FILE3% %FOLDERNAME%
    
    takeown /f %FILE4%
    icacls %FILE4% /grant administrators:F /t
    move %FILE4% %FOLDERNAME%
    
    takeown /f %FILE5%
    icacls %FILE5% /grant administrators:F /t
    move %FILE5% %FOLDERNAME%
    
    echo Successfully moved all infcache related files to %FOLDERNAME%
    pause
     
  3. Kitsunebi

    Kitsunebi Создатель

    Регистр.:
    22 июл 2009
    Сообщения:
    24
    Симпатии:
    103
    Два скрипта для копирования и восстановления настроек сетевых адаптеров. Проверялось на Windows XP, Windows 7 (но думаю, что будут работать и в Windows 8, 10, Server).
    Первый скрипт копирует имя и все настройки всех сетевых адаптеров вне зависимости от их состояния (вкл/вкл), но только если настройки внесены вручную (если настройки выставлены по DHCP, ни настройки, ни информация и о адаптере не копируется). ВНИМАНИЕ: скрипт не копирует SSID и пароль к WiFi.
    Первый скрипт для копирования (я назвал netexport.bat). После выполнения в папке со скриптом будет сформирован файл netsettings.txt с настройками. Код скрипта:
    Код:
    @echo off
    netsh -c interface dump > netsettings.txt
    exit
    Второй скрипт (я назвал netimport.bat) восстанавливает настройки сети из сформированого файла netsettings.txt. Для этого нужно в папку со скриптом положить netsettings.txt. Код скрипта:
    Код:
    @echo off
    start /wait netsh.exe -f netsettings.txt
    exit
    P.S. Может это и сложно назвать полноценным скриптом, но все же если на компе несколько адаптеров со своими настройками, то он поможет немного облегчить жизнь))
     
  4. Newangel

    Newangel Писатель

    Регистр.:
    17 дек 2015
    Сообщения:
    8
    Симпатии:
    1
    Помогите со скриптом для задания прав на подпапки для конкретного пользователя. Что-то не разобрался с CACLS. Есть Папка с кучей подпапок. Есть 2 группы пользователей full и remote. Remote может читать содержимое корневой папки, но не может входить в эти папки. Remote может войти и изменять файлы только в своей подпапке. Full имеет полный доступ во все подпапки. Пробовал играться с наследованием, что-то не получается. Подпапок много, на каждую долго права менять :(
     
  5. kotktml

    kotktml Писатель Нарушитель

    Регистр.:
    8 июн 2018
    Сообщения:
    1
    Симпатии:
    0
    ПЕРЕМЕННЫЕ ДЛЯ КОМАНДНОЙ СТРОКИ WINDOWS - могут пригодиться крафтить CMD/BAT

    Тип


    Описание

    %ALLUSERSPROFILE%


    Локальная


    Возвращает размещение профиля «All Users».

    %APPDATA%


    Локальная


    Возвращает используемое по умолчанию размещение данных приложений.

    %CD%


    Локальная


    Возвращает путь к текущей папке.

    %CMDCMDLINE%


    Локальная


    Возвращает строку команд, с помощью которой был запущен данный экземпляр Cmd.exe.

    %CMDEXTVERSION%


    Системная


    Возвращает номер версии текущих расширений обработчика команд.

    %COMPUTERNAME%


    Системная


    Возвращает имя компьютера.

    %COMSPEC%


    Системная


    Возвращает путь к исполняемой командной оболочке.

    %DATE%


    Системная


    Возвращает текущие данные. Использует тот же формат, что и команда date /t. Создается командой Cmd.exe.

    %ERRORLEVEL%


    Системная


    Возвращает код ошибки последней использовавшейся команды. Значение, не равное нуля, обычно указывает на наличие ошибки.

    %HOMEDRIVE%


    Системная


    Возвращает имя диска локальной рабочей станции, связанного с основным каталогом пользователя. Задается на основании расположения основного каталога. Основной каталог пользователя указывается в оснастке «Локальные пользователи и группы».

    %HOMEPATH%


    Системная


    Возвращает полный путь к основному каталогу пользователя. Задается на основании расположения основного каталога. Основной каталог пользователя указывается в оснастке «Локальные пользователи и группы».

    %HOMESHARE%


    Системная


    Возвращает сетевой путь к общему основному каталогу пользователя. Задается на основании расположения основного каталога. Основной каталог пользователя указывается в оснастке «Локальные пользователи и группы».

    %LOGONSEVER%


    Локальная


    Возвращает имя контроллера домена, который проверял подлинность текущей сессии.

    %NUMBER_OF_PROCESSORS%


    Системная


    Задает количество процессоров, установленных на компьютере.

    %OS%


    Системная


    Возвращает имя операционной системы. При использовании Windows 2000 имя операционной системы отображается как Windows_NT.

    %PATH%


    Системная


    Указывает путь поиска для исполняемых файлов.

    %PATHEXT%


    Системная


    Возвращает список расширений файлов, которые рассматриваются операционной системой как исполняемые.

    %PROCESSOR_ARCHITECTURE%


    Системная


    Возвращает архитектуру процессора. Значения: x86, IA64.

    %PROCESSOR_IDENTFIER%


    Системная


    Возвращает описание процессора.

    %PROCESSOR_LEVEL%


    Системная


    Возвращает номер модели процессора, установленного на компьютере.

    %PROCESSOR_REVISION%


    Системная


    Возвращает номер модификации процессора.

    %PROMPT%


    Локальная


    Возвращает параметры командной строки для текущего интерпретатора. Создается командой Cmd.exe.

    %RANDOM%


    Системная


    Возвращает произвольное десятичное число от 0 до 32767. Создается командой Cmd.exe.

    %SYSTEMDRIVE%


    Системная


    Возвращает имя диска, содержащего корневой каталог Windows XP (т. е. системный каталог).

    %SYSTEMROOT%


    Системная


    Возвращает размещение системного каталога Windows XP.

    %TEMP% и %TMP%


    Системная и пользовательская


    Возвращает временные папки, по умолчанию используемые приложениями, которые доступны пользователям, выполнившим вход в систему. Некоторые приложения требуют переменную TEMP, другие — переменную TMP.

    %TIME%


    Системная


    Возвращает текущее время. Использует тот же формат, что и команда time /t. Создается командой Cmd.exe.

    %USERDOMAIN%


    Локальная


    Возвращает имя домена, содержащего список учетных записей пользователей.

    %USERNAME%


    Локальная


    Возвращает имя пользователя, выполнившего вход в систему.

    %USERPROFILE%


    Локальная


    Возвращает размещение профиля для текущего пользователя.

    %WINDIR%


    Системная


    Возвращает размещение каталога операционной системы.

    в приложенном файле .CHM файл о CMD [хелпа для написания BAT/CMD]

    OPEN EXPLORER.EXE
    IN ADDRESS FIELD ENTER:
    ftp://ftplogin:ftppassword@FTPSERVER.COM
    or
    ftp://ftplogin:ftppassword@IP-ADDRESS_OF_FTP [like this: ftp://kotktml:1961@93.123.145.48 ]

    PASSWORD FOR ALL MY ARCHIVES

    1961


    ^

    WINDOWS COMMAND REFERENCE COLLECTION - .CHM FILE

    CRAZY BSOD SCREENSAVER

    .BAT or .CMD TO .EXE?
    COMPILER!

    SHUTDOWN COUNTDOWN ABORT COMMAND:
    "shutdown -a"
    SHUTDOWN WINDOWS AND SWITCH OFF THE COMPUTER
    "shutdown -t 00 -s"
    SHUTDOWN WINDOWS AND REBOOT THE COMPUTER
    "shutdown -t 00 -r"

    COMMAND LINE VARIABLES (WINXP AND SERVER 2003)

    OEM INFO (WINXP) EDIT SCRIPT

    @echo off

    rem магические слова :)
    Код:
    setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
    
    rem <--- ОБЪЯВЛЕНИЕ ПЕРЕМЕННЫХ --->
    rem полный путь и имя файла oeminfo
    set OEMFILE=%SYSTEMROOT%\system32\oeminfo.ini
    rem использовать ли реестровый метод для составления списка апдейтов (1 - да; 0 - нет)
    set REGMODE=0
    rem маркерный файл для определения cdrom-а
    set TAGFILE=WIN51
    rem производитель
    set MANUFACTURER=Z1MB4
    rem модель
    set MODEL=$TR4P0N3T!C$
    rem кол-во апдейтов в одной строке (по ум. 6)
    set UPMAX=6
    rem по какой длине выравнивать названия обновлений (по ум. 8)
    set UPNAMEL=8
    rem вписывать или нет серийник в файл oeminfo (1 - да; 0 - нет)
    set KEY=0
    rem сделать ли видимым серийник в окне "Сведения о поддержке" (1 - да; 0 - нет)
    rem невидимость серийника означает, что он не будет виден в окне "Сведения о поддержке", но в файле OEMINFO он будет в строке SerialNo=
    set KEYISVISIBLE=0
    rem присвоение переменной CDROM буквы cdrom-а, определенной по маркерному файлу
    rem (CDROM-ом считается первый найденный дисковод с маркерным файлом)
    for %%d in (c d e f g h i j k l m n o p q r s t u v w x y z) do (if exist "%%d:\%TAGFILE%" set CDROM=%%d:&& goto metka)
    :metka
    rem каталог с апдейтами и маска для отбора файлов в каталоге апдейтов (*.* - все; *.cat - только каталоги безопасности; KB*.* - только начинающиеся с KB и т.п.)
    if defined CDROM (
       set UPDATESDIR=%CDROM%\I386\SVCPACK
       set UPDATESMASK=*.*
    ) else (
       rem определяем переменную CDROM как каталог на HDD
       rem (если файл oeminfo.cmd у Вас будет не в каталоге $OEM$,
       rem то измените число обрезаемых от переменной справа символов с 7 на требуемое Вам)
       set CDROM=%~dp0
       set CDROM=!CDROM:~0,-7!
       set UPDATESDIR=%SYSTEMROOT%\system32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}
       set UPDATESMASK=KB*.*
    )
    
    rem Определение версии REG.EXE
    for /F "tokens=1" %%j in ('reg 2^>nul') do if "%%j"=="REG" set REGEXE=rus
    
    rem Обеспечение правильности отработки мультизагрузочного CD/DVD
    if exist "%CDROM%\I386\winn?.sif" (
       set WINNTSIF=%CDROM%\I386\winn?.sif
    ) else (
       if defined REGEXE (
         for /F "tokens=3 delims=   " %%j in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v SourcePath') do set SrcP=%%j
       ) else (
         for /F "tokens=3 delims= " %%j in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v SourcePath') do set SrcP=%%j
       )
       if exist "!SrcP!\winn?.sif" set WINNTSIF=!SrcP!\winn?.sif
    )
    rem <--- ОКОНЧАНИЕ ОБЪЯВЛЕНИЯ ПЕРЕМЕННЫХ --->
    
    rem язык (419 - рус.), а также название, пакет обновлений, версия и сборка ОС
    rem !ВАЖНО! - в кач-ве разделителя нужно указать только символ табуляции для
    rem русской версии REG.EXE и только пробел для английской
    if defined REGEXE (
       for /F "tokens=3 delims=   " %%j in ('reg query "HKCU\Control Panel\International" /v Locale') do set lang=%%j
       for /F "tokens=3 delims=   " %%j in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName') do set PN=%%j
       for /F "tokens=3 delims=   " %%j in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v CSDVersion') do set CSDV=%%j
       for /F "tokens=3 delims=   " %%j in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v CurrentVersion') do set CV=%%j
       for /F "tokens=3 delims=   " %%j in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v BuildLab') do set BUILD=%%j
    ) else (
       for /F "tokens=3 delims= " %%j in ('reg query "HKCU\Control Panel\International" /v Locale') do set lang=%%j
       for /F "tokens=3* delims= " %%j in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName') do set PN=%%j %%k
       for /F "tokens=3* delims= " %%j in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v CSDVersion') do set CSDV=%%j %%k
       for /F "tokens=3 delims= " %%j in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v CurrentVersion') do set CV=%%j
       for /F "tokens=3 delims= " %%j in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v BuildLab') do set BUILD=%%j
    )
    
    rem Анализ командной строки
    for /F %%j in ('echo.%* ^| find /i /c "/k"') do if %%j GTR 0 set KEY=1
    for /F %%j in ('echo.%* ^| find /i /c "/v"') do if %%j GTR 0 set KEYISVISIBLE=1
    for /F %%j in ('echo.%* ^| find /i /c "/r"') do if %%j GTR 0 set REGMODE=1
    
    rem Т.к. используется символ ">", то существующий файл OEMFILE будет перезаписан;
    rem т.о. нет нужды его предварительно удалять
    echo [General]> "%OEMFILE%"
    echo Manufacturer=%MANUFACTURER%>> "%OEMFILE%"
    echo Model=%MODEL%>> "%OEMFILE%"
    
    rem Достаем из winn?.sif серийный номер
    rem Это работает независимо от вида записи ProductKey=XXXX или ProductKey = XXXX (с пробелами)
    if defined WINNTSIF (
       if %KEY% == 1 (
         for /F "tokens=3 delims==] " %%j in ('find /I /N "ProductKey" "%WINNTSIF%"') do set PK=%%j
       )
    )
    
    rem вспомогательные переменные
    set i=1
    set l=0
    set c=0
    set n=0
    
    if %REGMODE% == 1 (
       rem Все обновления, установленные в системе
       rem (отбираются по подветкам; повторяющиеся эл-ты исключаются)
       for /F "tokens=5* delims=\" %%j in ('reg query "HKLM\SOFTWARE\Microsoft\Updates" /s ^| findstr /i /v "REG_ FileList"') do (
         if %ERRORLEVEL%==0 (
           for /F "usebackq tokens=3 delims=\" %%m in ('%%j\%%k') do (
             rem !ВАЖНО! - в следующей строке после %%m должно быть не меньше UPNAMEL-1 пробелов
             rem (это нужно для выравнивания списка обновлений при наличии апдейтов с короткими названиями - WGA, IE7)
             set tmp=%%m 
             set tmp=!tmp:~0,%UPNAMEL%!
             set kb[!tmp!]=!tmp:~2,6!
           )
           rem учет обновлений .Net 2.0
           for /F "tokens=2 delims=\" %%m in ('echo %%j\%%k^| findstr /i /c:" .NET"') do (
             set tmp=%%m 
             set tmp=!tmp:~0,%UPNAMEL%!
             set kb[!tmp!]=!tmp:~2,6!
           )
         )
       )
       rem Обновления, перечисленные в ветке Uninstall (начинающиеся с KB + 6 цифр)
       for /F "tokens=7 delims=\" %%m in ('reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" ^| findstr /i "\<KB[0-9][0-9][0-9][0-9][0-9][0-9]"') do (
         set tmp=%%m 
         set tmp=!tmp:~0,%UPNAMEL%!
         set kb[!tmp!]=!tmp:~2,6!
       )
    
       rem Определяем общее количество обновлений
       for /F %%j in ('set kb[') do set /A n+=1
     
       call :suppinfo
     
       rem Сортировка и перенос списка обновлений в файл, указанный в переменной OEMFILE
       for /F "tokens=2 delims=[]" %%j in ('set kb[ ^| sort') do (set kbname=%%j&& call :myprint)
    ) else (
       rem Определение общего кол-ва файлов в каталоге апдейтов соотв-щих маске
       for /F %%j in ('dir /b /a:-d "%UPDATESDIR%\%UPDATESMASK%"') do set /A n+=1
     
       call :suppinfo
     
       rem Список апдейтов (имена всех файлов без расширений; имена выравниваются по длине до UPNAMEL символов)
       for /F "tokens=1 delims=." %%j in ('dir /b /a:-d "%UPDATESDIR%\%UPDATESMASK%"') do (set kbname=%%j&&set kbname=!kbname!  &&set kbname=!kbname:~0,%UPNAMEL%!&& call :myprint)
    )
    rem Выход из этого пакетного файла.
    rem Команда GOTO принимает в качестве метки перехода строку :EOF, которая вызывает
    rem передачу управления в конец текущего пакетного файла. Это позволяет легко
    rem выйти из пакетного файла без определения каких-либо меток. (из справки по goto)
    goto :EOF
    
    :myprint
    if !c! == 0 (
       set str=!kbname!
    ) else (
       set str=!str!  !kbname!
    )
    
    set /A c+=1
    
    if !c! == %UPMAX% (
       echo Line!i!=!str!>> "%OEMFILE%"
       set /A i+=1
       set /A l+=1
       set str=
       set c=0
       set /A tmp=n-l*UPMAX
    ) else (
       if %n% LSS %UPMAX% (
         if !c! == %n% (
           echo Line!i!=!str!>> "%OEMFILE%"
         )
       )
       if !tmp! LSS %UPMAX% (
         if !c! == !tmp! (
           echo Line!i!=!str!>> "%OEMFILE%"
         )
       )
    )
    goto :EOF
    
    :suppinfo
    if defined PK (
       if %KEYISVISIBLE% == 0 (
         echo [OEMSpecific]>> "%OEMFILE%"
         echo SerialNo=%PK%>> "%OEMFILE%"
         )
       )
    )
    
    echo [Support Information]>> "%OEMFILE%"
    if %lang% == 00000419 (
       echo Line!i!=ОС:%PN:Microsoft=% %CSDV:Service Pack=SP% версия %CV% сборка %BUILD%>> "%OEMFILE%"
    ) else (
       echo Line!i!=OS:%PN:Microsoft=% %CSDV:Service Pack=SP% version %CV% build %BUILD%>> "%OEMFILE%"
    )
    set /A i+=1
    
    if defined PK (
       if %KEYISVISIBLE% == 1 (
         if %lang% == 00000419 (
           echo Line!i!=Ключ продукта: %PK%>> "%OEMFILE%"
         ) else (
           echo Line!i!=Product Key: %PK%>> "%OEMFILE%"
         )
         set /A i+=1
       )
    )
    echo Line!i!=>> "%OEMFILE%"
    set /A i+=1
    
    rem Дата и время инсталляции ОС в формате DD.MM.YYYY (hh:mm), например 20.05.2005 (14:37)
    rem !!!!!!!!!!!!!!!!!!!!!!!!!!!
    rem Вы можете добавить дополнительную инф-цию для отображения в окне "Сведения о поддержке"
    rem в рус. и/или анг. версии (для вставки пустой строки исп-те команду echo Line!i!=>> "%OEMFILE%"
    rem ; и не забывайте ставить set /A i+=1 перед каждой строкой)
    rem !!!!!!!!!!!!!!!!!!!!!!!!!!!
    for /F %%t in ('time/T') do set T=%%t
    if %lang% == 00000419 (
       echo Line!i!=Дата и время установки ^(обновления^:( %date% ^(%T%^)>> "%OEMFILE%"
       set /A i+=1
       echo Line!i!=>> "%OEMFILE%"
       rem Пример добавления своих строк
       rem set /A i+=1
       rem echo Line!i!=Ваша информация>> "%OEMFILE%"
       set /A i+=1
       echo Line!i!=Установленные компоненты и обновления ^(%n%^:(>> "%OEMFILE%"
    ) else (
       echo Line!i!=Installation ^(updation^) date and time: %date% ^(%T%^)>> "%OEMFILE%"
       set /A i+=1
       echo Line!i!=>> "%OEMFILE%"
       rem Example for adding custom information
       rem set /A i+=1
       rem echo Line!i!=Your information>> "%OEMFILE%"
       set /A i+=1
       echo Line!i!=Installed Components and Updates ^(%n%^:(>> "%OEMFILE%"
    )
    set /A i+=1
    echo Line!i!=>> "%OEMFILE%"
    set /A i+=1
    goto :EOF

    MS-DOS WITH NTFS AND TCP/IP
    QEMM - 512MB CAPABLE
    BOOTABLE CD
    .ISO FORMAT
    DOWNLOAD:
    http://m.turbobit.net/rvlqo1e5rluj.html
     

    Вложения:

    Последнее редактирование модератором: 6 ноя 2018
  6. Alekxander

    Alekxander Постоялец

    Регистр.:
    3 янв 2018
    Сообщения:
    123
    Симпатии:
    34
    Оставлю здесь. Может кому пригодиться. Для меня очень нужный скрипт. Я например с его помощью перекидываю бекапы баз 1С на ФТП-сервер. Работает на Windows Server 2008/2008R2, Windows Server 2016.
    Нужна маленькая прога для соединения с фтп-сервером. WinSCP
    Установка WinSCP проста.Описывать не буду.
    1.Батник.
    Код:
    set datetimef=%date:~-4%_%date:~3,2%_%date:~0,2%
    set back_filename=bu_work_backup_%datetimef%_*.bak
    "C:\Program Files (x86)\WinSCP\winscp.com" /ini=nul /script="C:\Program Files (x86)\WinSCP\buback.txt" 
    В первой строке выбирается самый последний файл по дате и времени, потому как в моём случае имя бекапа файла состоит из названия бекапа и добавляется дата и время. Это уже Скуль так делает бекап.
    Потом указание название файла вместе с расширением. В примере - это база bu_work_backup.bak.
    В третьей строке путь к файлу скрипта и к текстовому файлу, в котором указаны данные для подключения к ФТП-серверу.
    2.Текстовик.
    Код:
    option batch on
    option confirm off
    # open ftp connection
    open ftp://логин:пароль@адрес сервера
    put G:\Backup\bu_work\%back_filename% /backup/bu_work/
    # "/" Backup
    exit
    Сначала указаны данные для подключения к фтп-серверу.Логин, пароль.
    Потом в строке указаны пути где лежит файл файл.
     
  7. m.kn

    m.kn Писатель

    Регистр.:
    4 ноя 2018
    Сообщения:
    5
    Симпатии:
    1
    1. Скрипт на BAT инкрементного копирования файлов.

    В системе требуется установленный 7zip
    В планировщике ставим ежедневный запуск full.bat
    Если полный архив отсутсвует - скрипт создаст полный бэкап
    Если уже есть полный архив - будет создан инкремент с отбором по атрибуту "архивный". Если сегодняшний инкремент уже есть (например ПК днем перезагрузили), то скрипт ничего не делает.
    В планировщике ставим запуск dellfull.bat например раз в месяц. Этот скрипт сотрет прежний полный бэкап, что послужит сигналом к полному очищению папки хранения бэкапов и запуску создания свежего полного архива

    full.bat
    Код:
    rem ************ блок настроек скрипта************
    rem установка параметров
    
    rem что копируем
    set source=D:\Documents
    
    rem временная папка, используется для создания инкрементов, сама очищается
    set zipertmp=E:\zipertmp
    
    rem куда копируем
    set destination=E:\docs_backup
    
    rem указываем путь до архиватора 7-zip
    set ziper="C:\Program Files\7-Zip\7z.exe"
    
    rem ***********************************************
    rem определяем дату и записываем в переменную
    for /F "tokens=1-3 usebackq delims=. " %%1 in (`date /t`) do set mydate=%%1.%%2.%%3
    rem ***********************************************
    
    
    rem **********блок создания инкрементов ***********
    rem если есть полный архив, то делаем инкремент и выходим. Если полный архив отсутствует - переходим в раздел создания полного архива
    if not exist %destination%\full_**********.zip goto createfull
    
    rem Если уже есть сегодняшний инкремент, то ничего делать не надо
    if exist %destination%\incr_%mydate%.zip goto gdby
    
    rem делаем инкремент
    rd %zipertmp% /S /Q
    mkdir %zipertmp%
    robocopy %source% %zipertmp% /S /Z /M
    %ziper% a %destination%\incr_%mydate%.zip %zipertmp%\* -mx1 -pfj38drnvhfy462390g7
    rd %zipertmp% /S /Q
    
    :gdby
    exit
    rem *************************************************
    
    
    rem ************ блок создания полного архива ************
    :createfull
    rem очищаяем папку назначения
    rd %destination% /S /Q
    mkdir %destination%
    
    rem Делаем полный архив 7зипом
    %ziper% a %destination%\full_%mydate%.zip %source%\* -mx1 -pfj38drnvhfy462390g7
    
    rem Снимаем атрибут "архивный" со всех файлов в целевом каталоге
    cd /d %source%
    attrib -A *.* /S /D
    exit
    rem ******************************************************
    dellfull.bat
    Код:
    set destination=E:\docs_backup
    
    del %destination%\full_**********.zip /q /a