( Вход | Регистрация | Поиск )

Батники, bat навсегда
Дата обновления: 10.02.2015 - 06:06, перейти к новому сообщению

·ENOTik_18654
Группа: Пользователи

Сообщений: 241
Предлагаю открыть тему создания разичный bat-файлов aka быстрого выполнения рутинных действий на компьютере, таких как содание папок с заданным именеи и резервное копирование туда нужой информации, сканирование папок с музыкой и создание плейлистов.

CODE
rem Создание папки с заданным именем
set /p FolderName=Введите имя папки:
echo %FolderName%
pause
md %FolderName%
echo Everything Done!


А это пример моего файла, которым я пользуюсь для создания резервных копий базы данных антивируса:

CODE
@echo off
title Резервное копирование

set archdir=E:\Distrib\BACKUP\Avast
set backupLST=E:\Distrib\Создание_backup

echo Идет остановка антивируса
net stop "avast! Antivirus"
net stop "aswUpdSv"
net stop "avast! Mail Scanner"
net stop "avast! Web Scanner"
pause

echo Идет архивация антивирусной базы данных программы Avast! Antivirus...

"%PROGRAMFILES%\WinRar\rar" a -ag+DD-MMM-YYYY -ilog:%archdir%\error.log -m5 -dh -t -idc  E:\Distrib\BACKUP\Avast\ @backup.lst

echo ********** >> %archdir%\backup.log
date /t >> %archdir%\backup.log
time /t >> %archdir%\backup.log
echo OK! >> %archdir%\backup.log
pause

net start "avast! Antivirus"
net start "aswUpdSv"
net start "avast! Mail Scanner"
net start "avast! Web Scanner"
rem Запуск иконки в трее
cmd /C "%PROGRAMFILES%\Avast4\ashDisp.exe"
echo Теперь окно можно закрыть :-) ...



Ответов(1 - 9)

·Equilibria
Группа: Наши Люди

Сообщений: 678
QUOTE
Предлагаю открыть тему создания разичный bat-файлов aka быстрого выполнения рутинных действий на компьютере
Поддерживаю, и так как хочу сама научиться создавать нормальные батники (уже делала, но простенькие), предлагаю в первую очередь поместить в тему список всех (или всех основных) команд с пояснениями. Искала такой полный список, но пока не нашла.



·yah
Группа: Наши Люди

Сообщений: 2.336
QUOTE(Equilibria @ 29.06.2007 - 6:16)
Искала такой полный список, но пока не нашла.


Заходишь в справку в винде и ищешь "Справочник по параметрам командной строки" ,)


·_Dimas_
Группа: Пользователи

Сообщений: 71
Подерживаю, а то и так мало народу кто командами умеет работать, так ведь и сам иной раз вспоминаешь как это делается
CODE

@echo off
rem Копирование данных из онной папки в другую
rem Запуск BAT-File.cmd "Папка источник" "Папка приемник"

rem Удаление источника, если есть
del /F /S /Q %2 >>nul
rd /S /Q %2 >>nul
rem Создаем источник заново
md %2 >>nul
rem Копируем из источника в приемник
xCopy %1 %2 /S /E /C /I /Q /H /R >>nul
echo Копирование завершено
pause




Добавлено:

Массовая отсылка сообщений

SendPing.cmd
CODE

@echo off
ping.exe %1 -n 1 -w 500 >>nul
if ERRORLEVEL 1 goto :OFF
net send %1 %2
goto :EOF
:OFF
echo Компьютер %1 выключен


Send.cmd
CODE

@call SendPing.cmd Comp1 %1
@call SendPing.cmd Comp2 %1
@call SendPing.cmd Comp3 %1
@call SendPing.cmd Comp4 %1
@call SendPing.cmd Comp5 %1
pause


Запускаю так
Send "Текст сообщения"


·ENOTik_18654
Группа: Пользователи

Сообщений: 241
QUOTE
предлагаю в первую очередь поместить в тему список всех (или всех основных) команд с пояснениями. Искала такой полный список, но пока не нашла.


Ну, для начала можно почитать вот это пуск > выполнить > %windir%\help\ntcmds.chm. Это, можно сказать основа.
Очень часто использую вот эту команду вместо монструозного и неповоротливого планировщика:
QUOTE
help AT
. "AT" - rоманда AT предназначена для запуска команд и программ в указанное время и по определенным дням :-).

Вывод текущей даты:
CODE
echo %date%


ЗЫ Вся красота программирования в простоте команд :-)

Добавлено:

Создание треугальника:

CODE
@echo off
set t1=a
set t2=a
echo %t1%
:again
set t1=%t1%%t2%
echo %t1%
goto again



·ENOTik_18654
Группа: Пользователи

Сообщений: 241
Ну, а это самое серьезное wink.gif
Используется для создания бекапов для mssql сервера.
Надеюсь кому-нибудь пригодмтся :-)

CODE
@echo off
rem Важно !!! Кодировка DOS !!!
rem ************
rem * Backup.cmd - архивирование базы                             *
rem ************

set Database=%1
set Login=%2
set Password=%3

if '%Database%'=='' goto :Usage
if '%Database%'=='/?' goto :Usage

rem !!!! В случае длинных имен - указывать БЕЗ КАВЫЧЕК !!!

rem Путь к каталогу бакапов на сервере
set Backup=D:\MSSQL\BACKUP
rem Microsoft SQL Server Command Line Tool
set ISQL=C:\PROGRA~1\MICROS~3\90\TOOLS\BINN\osql.exe
rem Имя SQL Server'a
set SQLServer=ALPHA
set BackupUser=%Login%
rem Утилита архивирования командной строки
set RAR=C:\PROGRA~1\WINRAR\rar.exe
rem Утилита forfiles - для запуска процедуры удаления дла старых бакапов
set FORFILES=C:\Scripts\forfiles.exe
rem Удалять бакапы, старше этого количества дней
set Days=90

rem Сетевые ресурсы для резервного копирования
rem В случае, если копирование по сети не нужно, установите пути пустыми
Set Path01=\\ALPHA\D$\Backups
Set Path02=\\CHICAGO\Disk\Backups
rem Лог файл о результатах копирования, в случае, если копирование не ве-дется, не используется
set Log=c:\backup_log.txt

rem Проверки
IF NOT EXIST "%ISQL%" (echo Microsoft SQL Server Command Line Tool "%ISQL%" не найден!
echo Поправьте значение переменной ISQL в командном файле!
goto :EOF)
IF NOT EXIST "%RAR%" (echo Архиватор "%RAR%" не найден!
echo Поправьте значение переменной RAR в командном файле!
goto :EOF)
IF NOT EXIST "%FORFILES%" (echo Утилита "%FORFILES%" не найдена!
echo Поправьте значение переменной FORFILES в командном файле!
goto :EOF)
IF NOT EXIST "%backup%" (echo Каталог бакапов "%Backup%" не найден!
echo Поправьте значение переменной BACKUP в командном файле!
goto :EOF)

if NOT '%Path01%'=='' (IF NOT EXIST "%Path01%" (echo Каталог бакапов "%Path01%" не найден!
 echo Поправьте значение переменной Path01 в командном файле!
 echo %date% %time% Поправьте значение переменной Path01 в командном файле! >> %log%
 set Path01=)
)
if NOT '%Path02%'=='' (IF NOT EXIST "%Path02%" (echo Каталог бакапов "%Path02%" не найден!
 echo Поправьте значение переменной Path02 в командном файле!
 echo %date% %time% Поправьте значение переменной Path02 в командном файле! >> %log%
 set Path02=)
)

for /f "tokens=1-4 delims=. " %%i in ('date /t') do set longdate=%%i%%j%%k
set temp=C:\TEMP

set FileName=%longdate:~0,2%_%longdate:~2,2%_%longdate:~4,4%
rem дата в формате 2003_04_12
echo Дата: %Filename%
echo SQL Server: %SQLServer%
echo База данных: %Database%
echo.

echo 1. Снятие Backup...
set ArcSQL=%temp%\arcsrv.sql
echo USE master > %ArcSQL%

echo EXEC sp_addumpdevice 'disk', '%Database%_Backup', '%BACKUP%\%Database%_%FileName%.bcp' >> %ArcSQL%
echo BACKUP DATABASE %DataBase% TO %Database%_Backup >> %ArcSQL%
echo exec sp_dropdevice '%Database%_Backup' >> %ArcSQL%

"%ISQL%"  -S %SQLServer% -d master -U %BackupUser% -P %Password% -i %ArcSQL% -n

echo 2. Упаковка backup'а...
cd "%BACKUP%"
"%RAR%" a "%BACKUP%\%Database%_%FileName%" "%BACKUP%\*%Filename%.bcp" -rr -c -ep -av -idp -id -idc


echo 2. Копирование резервных копий в сети...

if not '%Path01%'=='' Call :CopyProc "%Path01%"
if not '%Path02%'=='' Call :CopyProc "%Path02%"

echo 3. Лог результата копирования
set i=0
IF EXIST "%BACKUP%\%Database%_%FileName%.rar" (set /a i=%i%+1)
IF EXIST "%Path01%\%Database%_%FileName%.rar" (set /a i=%i%+1)
IF EXIST "%Path02%\%Database%_%FileName%.rar" (set /a i=%i%+1)
echo %Date% %time% - Backup %Database% завершен! Готово архивов: %i% из 3 >> %log%
echo.
echo Backup complete

if /i %i% NEQ 0 (Call :Delete)
goto :EoF

:Delete
:удаляю все что старше...
"%forfiles%"  -p"%Backup%"  -s -m*.rar -d-%Days% -c"CMD /C del @PATH\@FILE"
if not '%Path01%'=='' ("%forfiles%"  -p"%Path01%"  -s -m*.rar -d-90 -c"CMD /C del @PATH\@FILE")
if not '%Path02%'=='' ("%forfiles%"  -p"%Path02%"  -s -m*.rar -d-90 -c"CMD /C del @PATH\@FILE")
del "%backup%\*.bcp"
goto :eof

:CopyProc
echo Копирование... %1
copy "%BACKUP%\%Database%_%FileName%.rar" %1
goto :eof

:usage
echo.
echo   Использование:
echo          BACKUP {Имя базы данных} {Логин} {Пароль}
goto :eof

:eof



·ENOTik_18654
Группа: Пользователи

Сообщений: 241
Да, чуть не забыл, special for Equilibria:
файлик с основами bat'a


Dens-v

Добрый день!Люди подскажите пожалуйста что мне не хватает?
Запускаю из командной строки вот эту строчку: rasdial Имя подкл Польз парол -Всё отлично срабатывает,создаю батник с этой строчкой эфекта 0.Заранее спасибо!


·Quim2005
Группа: Наши Люди

Сообщений: 1.145
QUOTE(Dens-v @ 31.07.2007 - 22:56)
создаю батник с этой строчкой эфекта 0


Было такое. Указал путь к exe-шнику в строке и все пошло.


·ENOTik_18654
Группа: Пользователи

Сообщений: 241
Dens-v, напиши сюда код своего bat-файла