Программирование

Батники

,

bat навсегда

Дата публикации:

ENOTik_18654, 28.06.2007 - 23:17

Предлагаю открыть тему создания разичный 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 Теперь окно можно закрыть :-) ...

Equilibria, 29.06.2007 - 6:16

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

yah, 29.06.2007 - 8:06

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


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

_Dimas_, 29.06.2007 - 13:46

Подерживаю, а то и так мало народу кто командами умеет работать, так ведь и сам иной раз вспоминаешь как это делается
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, 30.06.2007 - 23:34

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, 30.06.2007 - 23:44

Ну, а это самое серьезное 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, 30.06.2007 - 23:55

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

Dens-v, 31.07.2007 - 22:56

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

Quim2005, 1.08.2007 - 10:57

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


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

ENOTik_18654, 3.08.2007 - 18:30

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

Zloy_T, 3.08.2007 - 22:10

ENOTik_18654, пробуй

Скопируй в обычный виндовый блокнот и сохрани, как test.cmd

CODE

@echo off
chcp 1251

==твой бат собственно==
ну тут наверно екзит:Р

Zloy_T, 4.08.2007 - 3:58

справка по батам.

Dens-v, 6.08.2007 - 14:58

QUOTE
Dens-v, напиши сюда код своего bat-файла

CODE
rasdial VPN Ivan 12345

Например вот так из командной строки отробатывает нормально а из батника не хочет.
Но проблему решил созданием ярлыка!

ENOTik_18654, 6.08.2007 - 18:54

QUOTE
Например вот так из командной строки отробатывает нормально а из батника не хочет.
Но проблему решил созданием ярлыка!


Ради интереса создал у себя такое же подключение с таким же именем и все работает.
Кстати, ты в какой кодировке сохранял bat-файл ? Нужна кодировка Dos. Кодовая страница 866!

CODE
@ECHO OFF
RASDIAL VPN Ivan 12345
pause

alexank, 9.08.2007 - 7:42

да у меня тоже такое было только я не помню в чем была проблема

symrak009, 24.09.2007 - 7:46

хм.. батники.. а подскажите ка люди как при помощи bat-ника включать одновременно 2-3 приложения?

Love.sys, 24.09.2007 - 10:41

Цитата | Quote
хм.. батники.. а подскажите ка люди как при помощи bat-ника включать одновременно 2-3 приложения?
очень просто:

3progi.bat
Code
start "c:\soft\megaproga1.exe"
start "c:\soft\megaproga2.exe"
start "c:\soft\megaproga3.exe"


есть ещё более простой вариант:

3progi_ver2.bat
Code
c:\soft\megaproga1.exe
c:\soft\megaproga2.exe
c:\soft\megaproga3.exe

rRapsz, 25.09.2007 - 20:54

Code
@echo off
date/t >>c:/Ping.txt
time/t  >>c:/Ping.txt
echo on
ping 192.256.130.45 -l 1400 -n 20   >>c:/Ping.txt
pause

Народ подскажите, вот есть такой батник, он кароче мерит пинги а потом записывает в фаил, а можно ли сделать, чтобы , он показывал на экране отчёты о пингах и записывал их потм в фаил ?

ENOTik_18654, 27.09.2007 - 10:56

Цитата | Quote
а можно ли сделать, чтобы , он показывал на экране отчёты


В смысле? А зачем тебе это, ты ведь и так записываешь это все в файл? Так что просто открывай его после проверки пинга теми же средствами bat-файла (explorer <имя файла>).

rRapsz, 27.09.2007 - 19:36

Цитата | Quote(ENOTik_18654 @ 27.09.2007 - 11:56)
В смысле? А зачем тебе это, ты ведь и так записываешь это все в файл? Так что просто открывай его после проверки пинга теми же средствами bat-файла (explorer <имя файла>).
*


не ну это понятно, просто хотел сразу видеть очтёты о пингах, а не ждать пока все пинги проверятся и запишутся

Азамат, 23.10.2007 - 18:23

а вопрос про батник
вот надо сделать так вообщем перед запуском exe файла запускается батник который запускает файл как службу винды
потом запускается сам exe файл
вот как интегрировать батник в exe знаю вроде а как создать описанный выше

oligarh_arhiv, 23.10.2007 - 18:53

Цитата | Quote(Азамат @ 23.10.2007 - 19:26)
а вопрос про батник
вот надо сделать так вообщем перед запуском exe файла запускается батник который запускает файл как службу винды
потом запускается сам exe файл
вот как интегрировать батник в exe знаю вроде а как создать описанный выше
*


Пробуй в батнике зарускать ехе
Code
start /B "c:\ewpoew.exe"


так запускаеться приложение без создания отдельного окна

Добавлено:

точнее не так
я не совсем понял задачу smile.gif
наверное
Code
start /wait "c:\ewpoew.bat"
start "c:\ewpoew.exe"


Добавлено:

и вообще....почему нельзя так
Цитата | Quote
net start "твоя служба"
start  "c:\ewpoew.exe"

Safarid, 24.10.2007 - 12:50

Такой вопрос: Может ли батник распаковать запароленый зип архив и как это сделать батник и архи лежат в одной папке распаковать нужно туда же.

Korich, 24.10.2007 - 13:09

Code

Rar x -p пароль имя_архива.rar

Азамат, 27.10.2007 - 17:42

что то не запускается служба
коммандой net start
есть другие сведения

yah, 27.10.2007 - 19:30

Цитата | Quote(Азамат @ 27.10.2007 - 17:45)
что то не запускается служба
коммандой net start
есть другие сведения
*


Ну если то, что ты запускаешь, изначально не было акцентировано на работу в качестве службы, то вряд ли тебе это удастся *)

oligarh_arhiv, 29.10.2007 - 10:40

Если в названии службы есть пробел, название нужно брать в кавычки
Если название службы на русском, то созданием в блокноте не получиться, юзай редактор FARа


И еще, с какой ошибкой отваливаеться запуск службы, без этого тяжело определить в чем замок smile.gif
ДОБАВЛЕНО
Можно воспользоваться консолью cmd smile.gif
в командной строке пишем такую команду
Code
copy con c:\netstart.bat

после нажатия ВВОДа
записываем команды которые должны быть в батнике smile.gif
Code
net start "твоя служба"
start  "c:\ewpoew.exe"


далее жмем CTRL+Z и еще раз ВВОД
в итоге получаем в корне диска С: файл netstart.bat в нужной кодировке smile.gif

Safarid, 30.10.2007 - 17:25

Цитата | Quote(Korich @ 24.10.2007 - 16:12)
Rar x -p пароль имя_архива.rar
*


не распаковывает, может ещё как можно

Korich, 30.10.2007 - 17:50

Safarid, извини, случайно пробел поставил unsure.gif

rar x -pпароль имя_архива.rar

Safarid, 30.10.2007 - 18:16

Уже 5 минут распаковывает архив 1,16 килобайт
может лучше команду на zip или как-нить быстрее dry.gif

AXUC, 11.12.2007 - 15:52

В локальной сети, на своем диске с открытым доступом, я выложил вот такой батник:
Code
net share localka=C:\

Все подряд заходят и тупо по нему щелкают. Естественно у них на диске C:\ открывается доступ. И пока они этого не узнали, я залажу к ним на диск, вижу все файлы, но вот удалить не могу smile.gif . Почему? Может тут надо что-нибудь дописать?

lFallenl, 12.12.2007 - 8:08

А не подскажите: как к батнику на форматирование диска без подтверждения прикрепить время запуска и запуск в свернутом окне?

ENOTik_18654, 26.12.2007 - 13:45

> А не подскажите: как к батнику на форматирование диска без подтверждения прикрепить время запуска и запуск в свернутом окне?

Время запуска команда: AT

Запуск в свернутом виде: START MIN

Азамат, 19.02.2008 - 17:52

а как можно сделать скрипт или батник чтоб например он проверял какое то значение если нашел его то кричал я нашел а если нет то процесс шел бы дальше


т.е. на деле как сделать то что делают программы допустим каспер
например каспер стоит и ты хочешь второй раз установить он говорит нельзя я уже установлен
как это сделать?

ENOTik_18654, 19.02.2008 - 18:36

Цитата | Quote
а как можно сделать скрипт или батник чтоб например он проверял какое то значение если нашел его то кричал я нашел а если нет то процесс шел бы дальше


т.е. на деле как сделать то что делают программы допустим каспер
например каспер стоит и ты хочешь второй раз установить он говорит нельзя я уже установлен
как это сделать?


Для этого существуют команды проверки условий IF ... ELSE ... THEN ...

Expelled, 19.02.2008 - 23:55

Цитата | Quote(_Dimas_ @ 29.06.2007 - 13:49)
...
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

...


А можно более подробно обьяснить что тут происходит? Мне просто нужен батник который копировал бы файлы из одной папки в другую, без удаления в первой. Этот батник положу в загрузку системы, и таким образом при запуске компа каждый раз будет создаваться резервная копия smile.gif

x-foby, 20.02.2008 - 2:13

Цитата | Quote(Expelled @ 20.02.2008 - 0:58)
А можно более подробно обьяснить что тут происходит?
*


А читать мы не умеем? wink.gif
Code
rem Удаление источника, если есть
del /F /S /Q %2 >>nul
rd /S /Q %2 >>nul
rem Создаем источник заново
md %2 >>nul

убирай, и вперёд)

Азамат, 20.02.2008 - 5:48

Цитата | Quote(ENOTik_18654 @ 19.02.2008 - 18:39)
Цитата | Quote
а как можно сделать скрипт или батник чтоб например он проверял какое то значение если нашел его то кричал я нашел а если нет то процесс шел бы дальше


т.е. на деле как сделать то что делают программы допустим каспер
например каспер стоит и ты хочешь второй раз установить он говорит нельзя я уже установлен
как это сделать?


Для этого существуют команды проверки условий IF ... ELSE ... THEN ...
*



а можно пример....?

Expelled, 20.02.2008 - 10:00

Цитата | Quote(walet @ 20.02.2008 - 2:16)
Цитата | Quote(Expelled @ 20.02.2008 - 0:58)
А можно более подробно обьяснить что тут происходит?
*


А читать мы не умеем? wink.gif
Code
rem Удаление источника, если есть
del /F /S /Q %2 >>nul
rd /S /Q %2 >>nul
rem Создаем источник заново
md %2 >>nul

убирай, и вперёд)
*



Эххх, не выходит. Оставил только :

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


В скобках вместо "Папка источник, и приемник" написал свои папки, допустим D:\TEST\ и D:\TEST2\ . И ступор, ничего никуда не копируется. Плюс просит нажать кнопку,а нужно что бы без подтверждения копировалось, мне в фирму на бухгалтерский комп что бы файлы почты копировались unsure.gif

---

Вот пока такое "написал "

Code
copy D:\TEST1\Test.txt D:\TEST2\
pause


Но нужно что бы без подтверждения запускалось, копировалось и само закрывало окно. Такое возможно ?

---

Собсно решил,
Code
copy D:\TEST1\Test.txt D:\TEST2\
exit


---

Самый имхо оптимальный вариант копирования %

Code
@echo off
copy "путь к файлу копирования" "путь куда будет копироваться"
echo Копирование завершено (я бы написал на английском, так как у мну например проблемы с Рус. кодировкой в батниках)
pause

_Dimas_, 20.02.2008 - 10:18

Цитата | Quote
@echo off

запрет вывода запускаемых комманд

Там где строчка начинается с rem это коментарий

Там где строчка заканчивается на >>nul это отменяет вывод действий команды на консоль

Цитата | Quote
del /F /S /Q %2 >>nul

Удаляет все файлы и папки из приемника
Цитата | Quote
rd /S /Q %2 >>nul

Удаляет саму папку приемника
Цитата | Quote
md %2 >>nul

Создает папку приемника
Цитата | Quote
xCopy %1 %2 /S /E /C /I /Q /H /R >>nul

копирует все файлы, папки и подпапки из источника в приемник

Цитата | Quote
echo Копирование завершено

Вывод на консоль сообщения Копирование завершено
Цитата | Quote
pause

Пауза в программе, ждет нажатия любой кнопки

Если хочешь видеть все действия которые выполняет программа, убери все >>nul

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

Для более подробной информации по какой либо команде, набери
Code
команда /?

например
Code
xCopy /?

finder07, 20.02.2008 - 12:32

Доброго времени суток, господа.

Помогите пожалуйста, мне нужен батник, который пинговал бы компьютер, а если бы ответа от компа не поступало, сразу же запускались бы несколько программ.

Заранее спасибо )))

_Dimas_, 20.02.2008 - 15:03

Цитата | Quote
Помогите пожалуйста, мне нужен батник, который пинговал бы компьютер, а если бы ответа от компа не поступало, сразу же запускались бы несколько программ.


Code
ping.exe Computer_or_IPAdress -n 1 -w 500
if ERRORLEVEL 1 goto :OFF
rem раздел программ если комп пингуется
rem если здесь программы не нужны ничего не писать
goto :EOF
rem если хочешь зациклить поставь метку в начале программы
rem а вместо "goto :EOF" напиши "goto :твоя_метка"
:OFF
rem раздел программ если комп не пингуется

ENOTik_18654, 20.02.2008 - 16:54

Цитата | Quote
а можно пример....?


Можно конечно!

Code

@ECHO OFF

rem Если существует файл Changed.mdb, то
rem переходим к метке ARCHIV и
rem добавляем в архив test все типы файлов,
rem иначе переход к END и выход!

IF EXIST Changed.mdb (GOTO :ARCHIV) ELSE GOTO :END

:END
ECHO Файла не существует! :-(
PAUSE
EXIT

:ARCHIV
"c:\Program Files\Winrar\rar.exe" a test *.*
PAUSE


PS Не забываем, что все бат-файлы должны быть в кодировке DOS, т.е. в 866 кодовой странице!

ENOTik_18654, 15.07.2008 - 13:23

Давно что-то эта тема не обсуждается. Продолжение... архивация БД программы QIP:

Code
@ECHO OFF

SET rar="c:\Program Files\Winrar\rar.exe"
SET archdir="E:\Ivan\Service\QipBase"
SET archfile="E:\Ivan\Service\QipBase\Users"


%rar% a -t -ep1 %archdir%\Backup_Hystory.rar %archfile%
PAUSE

_Dimas_, 15.07.2008 - 13:56

Урезание лога базы MS SQL
Code
@echo off
rem Важно !!! Кодировка DOS !!!
rem **************
rem * Backup.cmd - архивирование лога базы                     *
rem * Backup.cmd "Имя сервера" "Имя Базы" "Логин" "Пароль"     *
rem **************

echo %0 %1 %2 %3 %4
echo Начало выполнения: %Date% %Time%

set SQLServer=%1
set DataBase=%2
set Login=%3
set Password=%4

if '%SQLServer%'=='/?' goto :help
if '%SQLServer%'=='' goto :help
if '%DataBase%'=='' goto :help
if '%Login%'=='' goto :help

rem Microsoft SQL Server Command Line Tool
set osql=%ProgramFiles%\Microsoft SQL Server\80\Tools\Binn\osql.exe
rem Путь к каталогу бакапов на сервере
set Path=D:\
rem формирование имени файда
set FileName=%DataBase%_log
set BackupFile=%Path%%FileName%.bak

rem Проверки
if not exist "%osql%" (echo Microsoft SQL Server Command Line Tool "%osql%" не найден!
                      echo Поправьте значение переменной osql в командном файле!
                      goto :KONEC)
if not exist "%Path%" (md "%Path%"
                      if not exist "%Path%" (echo Не могу создать каталог "%Path%"!
                                             echo Проверте настройки доступа или поправте значение
                                             echo переменной Path в командном файле!
                                             goto :KONEC))
                                             
"%osql%" -S %SQLServer% -d master -U %Login% -P %Password% -Q "BACKUP LOG %Database% TO DISK = N'%BackupFile%' WITH INIT, NOUNLOAD, NAME = N'%Database% backup', NOSKIP, STATS = 10, NOFORMAT"

"%osql%" -S %SQLServer% -d master -U %Login% -P %Password% -Q "use %Database% DBCC SHRINKFILE (N'KompasMS_log', 128)"


goto :KONEC

rem Справка по использованию программы
:help
echo
echo Использование программы:
echo   %0 {Имя сервера} {Имя базы данных} {Логин} {Пароль}
goto :KONEC

:KONEC
echo Конец выполнения: %Date% %Time%
echo ------

Васерман, 29.07.2008 - 0:26

Ребята,помогите пожалуйста написать батник,который будет выключать комп ровно в 23.00.

_Dimas_, 29.07.2008 - 4:51

в планировщик запихни
shutdown -s -t 10
или
shutdown -s -m \\Другой_комп -t 10
Во втором случае нужны права админа на другой комп

Васерман, 30.07.2008 - 22:36

Цитата | Quote(_Dimas_ @ 29.07.2008 - 4:54)
в планировщик запихни
shutdown -s -t 10
или
shutdown -s -m \\Другой_комп -t 10
Во втором случае нужны права админа на другой комп
*



а по детальнее можно пожалуйста как запихнуть в планировщик?

и почему имеено -t 10 ,как планировщик определит что это имеено 10 вечера или например 10 утра?


Добавлено:

Еще такой ламерский,возможно,вопрос , перед тем как писать батник в тхт формате,обязательно писать в самом верху
"@echo off" ?

_Dimas_, 31.07.2008 - 5:08

Цитата | Quote
а по детальнее можно пожалуйста как запихнуть в планировщик?

Пуск -> Настройка -> Панель управления -> Назначенные задания.
Щелкаешь правой кнопкой мыши, в спывающем меню Создать -> Назначенное задание, даешь имя этому заданию (например «Выключение»)
Открываешь это здание. В поле выполнить пишешь
«shutdown -s -t 10»
-s этот параметр говорит то что комп надо выключить
-t 10 это задержка в секундах
Переходишь на вкладку Расписание
И ставишь нужное тебе расписание
Назначить задание: Ежедневно
Время начала: 23:00
Расписание по дням: Каждый 1 день
Нажимаешь ОК, появляется запрос от какого имени выполнять задание. По умолчанию там написан твой логин, так что просто вводишь свой пароль.

Цитата | Quote
Еще такой ламерский,возможно,вопрос , перед тем как писать батник в тхт формате,обязательно писать в самом верху
"@echo off" ?

«@echo off»
Писать не обязательно
Это строка предотвращает вывод на экран запускаемую строку
а символ @ не выводит на эктан саму команду echo off
Возьми какой-нибудь батник запусти его с этой строкой и без нее и посмотри отличия.

Васерман, 31.07.2008 - 18:27

спасибо,буду пользоватьс,я в последнее время лень выключать комп *в ручную*=)кстати а как добавить батник в автозагрузку ,если батник называеться,например,"123.bat"



_Dimas_, 1.08.2008 - 4:59

Мышкой тащишь его в Пуск -> Программы -> Автозагрузка

serega1313, 1.08.2008 - 5:11

Цитата | Quote
если батник называеться,например,"123.bat"
C:\Documents and Settings\All Users\Главное меню\Программы\Автозагрузка\
сюда вставляеш

Васерман, 1.08.2008 - 9:29

Это понятно=)но как выглядит команда в батнике которая автоматически добавляет этот батник в автозагрузку?
нет возможности кликать на пуск-панель управления-автозагрузка

_Dimas_, 1.08.2008 - 9:38

Code
copy /y %0 "%UserProfile%\Главное меню\Программы\Автозагрузка\"

Это для русской версии винды
Кодировка должна быть DOS

Васерман, 1.08.2008 - 10:37

неработает,мой батник называеться "123.bat",добавляю текст в txt файлик

copy /y %0 "%UserProfile%\Главное меню\Программы\Автозагрузка\123.bat"

сохраняю в батник ,запускаю на своем компе,смотрю в автозагрузке файлик 123.bat не появляеться

_Dimas_, 1.08.2008 - 10:41

А при чем тут txt файл?

Васерман, 1.08.2008 - 10:46

батник пишу в тхт документе)

_Dimas_, 1.08.2008 - 10:52

можешь отправить мне этот файлик?

Васерман, 1.08.2008 - 11:38

проверь личку)

Васерман, 2.08.2008 - 0:43

кстати,как изменить адрес стартовой странички при открытии в ИЕ или в опере на страничку с другим адресом,посредством батника)
посмотрел в реестре,нашел,для ИЕ адресс начальной стартовой странички храниться в ветке

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main

раздел StartPage .

.....В моем случае,мне интересно ,как посредством батника можно изменить стартовую страничку указанную в скрине ниже,на стартовую страничку с адресом, например, www.mail.ru или на другой сайт)

_Dimas_, 4.08.2008 - 7:25

Команда для изменения Стартовой страницы в IE
Code
reg add "HKCU\Software\Microsoft\Internet Explorer\Main" /v "Start Page" /d "Адрес нужной страницы" /f


Для оперы нужно править ini-файл.
По умолчанию он находится здесь:
%UserProfile%\Application Data\Opera\Opera\profile\Opera6.ini
Секция: [User Prefs]
Параметр: Home URL

Васерман, 4.08.2008 - 17:18

_Dimas_,значит в валидной форме *запись* в батнике *для Оперы* будет

reg add "%UserProfile%\Application Data\Opera\Opera\profile\Opera6.ini" /v "user pref" /d "www.startaddress.com" /f ?

Добавлено:

кстати,спасибо тебе за ответы,я по ним начинаю понимать постепенно суть этого языка)

ZaHack, 4.08.2008 - 18:56

Васерман,

Цитата | Quote
значит в валидной форме *запись* в батнике *для Оперы* будет

reg add "%UserProfile%\Application Data\Opera\Opera\profile\Opera6.ini" /v "user pref" /d "www.startaddress.com" /f ?


Нет

Васерман, 4.08.2008 - 19:07

а как будет правильно ?

_Dimas_, 5.08.2008 - 4:58

Тут наверно лучше через Java скрипт сделать.
Тут уже работа с файлом а не с реестром.
А есть или нет команда правки файла через консоль я не знаю.

Это уже для любителей поразвлечься в рабочее время или просто для прикола. При обнаружении указанного процесса (например игрушки), завершает его и запускает нужную вещь. Этой вещью может быть должностная инструкция )
Code
@echo off
set FilterProcess=taskmgr.exe
set StartProgramm=notepad.exe
:first
tasklist /fi "imagename eq %FilterProcess%" | findstr %FilterProcess%
if %errorlevel%==1 goto :first
taskkill /fi "imagename eq %FilterProcess%" /f /t >nul
start %StartProgramm%
goto :first

RusHacK, 19.08.2008 - 15:49

Цитата | Quote(_Dimas_ @ 5.08.2008 - 5:01)
Тут наверно лучше через Java скрипт сделать.
*


На сколько я знаю, ни в js, ни в vbs нет ничего для работы с ini файлами, лучше написать небольшую консольную программку, и передавать ей параметры из batника.
Если нужно, могу помочь.

Васерман, 20.08.2008 - 20:06

Это возможно реализовать,например изменение стартовой страанички ,правя файл *ini .Сам интересуюсь этим ,если интересно пиши в личку,я увлекаюсь этим .

Code
set WshShell = WScript.CreateObject("WScript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set RegExp = CreateObject("VBScript.RegExp")
inifile = WshShell.ExpandEnvironmentStrings("%USERPROFILE%") &"\Application Data\Opera\Opera\profile\opera6.ini" 'Путь к файлу
strfind = "Home URL=[A-z./?&-~\d]*"
newstr = "Home URL=http://www.nyjnuysait.com"
Set Text = FSO.OpenTextFile(inifile)
Str = Text.ReadAll
RegExp.Pattern = strfind
Str = RegExp.Replace(Str, newstr)
Text.Close
Set Text = FSO.GetFile(inifile).OpenAsTextStream(2)
Text.Write(Str)
Text.Close

Alinka-1, 2.10.2008 - 18:56

Здравсвуйте! Помогите, пожалуйса решить проблему - пользуюсь RSS - читалкой Abilon Portable. Там есть памятки, хранящиеся в файле
D:\Program Files\Abilon\UserData\memories.dat
Периодически, в самый нужный момент оказывается, что эти памятки куда-то испарились. Опции архивирования этих памяток нет.
Можно ли написать такой батник, чтобы при его запуске в папке
D:\Program Files\Abilon\UserData\Archiv создавались подпапки (желательно с датой, можно просто с порядковым номером) и memories.dat копировался туда? Буду очень благодарна.

ENOTik_18654, 2.10.2008 - 20:10

Цитата | Quote
Здравсвуйте! Помогите, пожалуйса решить проблему - пользуюсь RSS - читалкой Abilon Portable. Там есть памятки, хранящиеся в файле
D:\Program Files\Abilon\UserData\memories.dat
Периодически, в самый нужный момент оказывается, что эти памятки куда-то испарились. Опции архивирования этих памяток нет.
Можно ли написать такой батник, чтобы при его запуске в папке
D:\Program Files\Abilon\UserData\Archiv создавались подпапки (желательно с датой, можно просто с порядковым номером) и memories.dat копировался туда? Буду очень благодарна.


Можно конечно. Но как правило bat-файлы идут в связке с какой-нибудь программой (чаще всего Winrar) и преследуют собой цель не только скопировать нужные файлы в отдельное место, но и сжать их по возможности.

Code
@ECHO OFF

REM Путь к архиватору, например,
REM rar="c:\Program Files\WinRar\rar.exe"
SET rar="путь_к_архиватору"

REM Папка, куда буду копироваться архивы
REM По умолчанию создаются рядом с архивируемым файлом
SET SDir="D:\Program Files\Abilon\UserData\Archiv"

REM Путь к файлу(папке), который будем сохранять
SET Files="D:\Program Files\Abilon\UserData\memories.dat"

%rar% a -ag+YYYY-MM-DD-NN %SDir%\arxiv.rar %Files%
PAUSE


Вариант конечно ооооооочень сырой, но каркас такой ;

Alinka-1, 2.10.2008 - 21:27

Спасибо большое! А что дописать, чтобы не выскакивало «черное окно» и чтобы в конце не нужно было нажимать любую клавишу, а закинуть в папку автозагрузки и забыть?

yah, 2.10.2008 - 21:48

Цитата | Quote(Alinka-1 @ 2.10.2008 - 22:30)
А что дописать, чтобы не выскакивало «черное окно» и чтобы в конце не нужно было нажимать любую клавишу, а закинуть в папку автозагрузки и забыть?
*


Нужно в самом конце убрать "PAUSE". Но черное окно все равно будет на секунду мелькать....

Alinka-1, 3.10.2008 - 11:57

Цитата | Quote
Нужно в самом конце убрать "PAUSE". Но черное окно все равно будет на секунду мелькать....

Черное окно убрала, поставив в свойствах ярлыка BAT- файла - запускать свернутым в значок. Но вошла во вкус , захотелось, чтобы сначала архивировался memories.dat, а затем запускался Abilon.exe
Написала:

Code

@ECHO OFF
SET rar="c:\Program Files\WinRar\rar.exe"

SET SDir="D:\Program Files\Abilon\UserData\Archiv"

SET Files="D:\Program Files\Abilon\UserData\memories.dat"%rar% a -ag+YYYY-MM-DD-NN %SDir%\arxiv.rar %Files%

D:\Program Files\Abilon\Abilon.exe


Архивирует, Abilon запускает, но окно cmd само не закрывается, остается свернутым на панели задач.
Что нужно сделать, чтобы само закрывалось?

yah, 3.10.2008 - 12:07

Цитата | Quote(Alinka-1 @ 3.10.2008 - 13:00)
но окно cmd само не закрывается, остается свернутым на панели задач.
*


Разверни его и посмотри, что в нем написано...

_Dimas_, 3.10.2008 - 14:00

Цитата | Quote
рхивирует, Abilon запускает, но окно cmd само не закрывается, остается свернутым на панели задач.
Что нужно сделать, чтобы само закрывалось?


попробуй написать
Code
start "D:\Program Files\Abilon\Abilon.exe"

И паузу в конце убери

Alinka-1, 4.10.2008 - 12:09

Code
@ECHO OFF
SET rar="c:\Program Files\WinRar\rar.exe"

SET SDir="D:\Program Files\Abilon\UserData\Archiv"

SET Files="D:\Program Files\Abilon\UserData\memories.dat"%rar% a -ag+YYYY-MM-DD-NN %SDir%\arxiv.rar %Files%

D:\Program Files\Abilon\Abilon.exe


Архив создает, Abilon запускает, окно не закрывается. Текст окна:


Code
RAR 3.70         Авторские  права  <с>   1993-2007 Александр  Рошал

Создание  архива D:\Program Files\Abilon\UserData\Archiv\Hrchiv\20O8-10-04-11-arxiw.rar

Добавление  D:\Program Files\Abilon\UserData\memories.dat  OK                  
Готово



Code
@ECHO OFF
SET rar="c:\Program Files\WinRar\rar.exe"

SET SDir="D:\Program Files\Abilon\UserData\Archiv"

SET Files="D:\Program Files\Abilon\UserData\memories.dat"%rar% a -ag+YYYY-MM-DD-NN %SDir%\arxiv.rar %Files%

start "D:\Program Files\Abilon\Abilon.exe"


Архив создает , Abilon не запускает, окно закрывается само собой.

mik_kovrov, 10.11.2008 - 16:48

Доброе время суток, увидел на форуме вот этот батник:
Цитата | Quote(ENOTik_18654 @ 30.06.2007 - 23:44)
Ну, а это самое серьезное 
Используется для создания бекапов для mssql сервера.
Надеюсь кому-нибудь пригодмтся :-)

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


он мне очень нужен,поставлена задача создания резервной копии базы данных, в качестве СУБД MS SQL Eхpress (модуля план обслуживания БД) попробовал создать резервную копию с помощью этого кода, у меня ничего неполучилось, может быть нетуда подставлял исходные данные? или кодировку нету использовал. Если можно выложите пожалуста файлик с этим кодом и с моиими данными ( имя SQL сервера : KASKAD; имя базы даных : mm6; пользователь бд :sa ; пароль : 111 ; путь каталога резервных копий на сервере : D:/backup; файлы нужно будет копировать по сети на компьютер с именем KASKAD1 на диск D в каталог baсkup ; упаковывать перед копированием ненадо( winrar не установлен); удалять файлы в каталогах резервного копирования старше трех дней; SQL сервер установлен в паку по умолчанию С:/ program files....) Если нетрудно выложите пожалуста файлик.

_Dimas_, 11.11.2008 - 6:13

Вот файл. Я его правда переделывал для себя.
Запускать так: BackupSQL.cmd KASKAD mm6 sa 111
В 26 строке присваивается значение переменной Path.
Если компьютеры у тебя в домене, то можно делать бэкап сразу на другой комп. d$ диск компа, дальше путь куда архивировать.
Если не в домене, то измени этот путь.
Имя бэкапа будет таким «mm6_yyyy.mm.dd.bak»

На счет последних трех бэкапов. Вместо стандартного планировщика я пользуюсь планировщиком
У него есть возможность очищать папку от старых файлов которые старее n дней.

Присоединённый файл  BackupSQL.rar ( 892байт ) Кол-во скачиваний: 6

mik_kovrov, 11.11.2008 - 17:39

Dimas спасибо за файлик, компьютеры не в домене, а если на локальный диск копировать 26 строка должна так выглядить : set Path=d:\backup\ ? Запускаю файлик появляется черное досовское окно сразу пропадает и больше ничего не происходит, бекап не делает

_Dimas_, 12.11.2008 - 5:50

Да перед и после равно пробелов быть не должно.
Попробуй использовать другой логин, не «sa». У меня с sa тоже не работает.

mik_kovrov, 12.11.2008 - 11:10

Под другим логином тож чето не выходит, логин должен быть с ролью sysadmin? и обязательно владельцем бызы которую бэкапиш? а можно какнибудь посмотреть на каком шаге батник затыкается и прекращает работу? и еще кодировка стоит 1251(ANSI - кирилица) так и должно быть?

_Dimas_, 12.11.2008 - 11:33

Ну я запускаю под свом логином, права системного администратор и права на базу стоят public и db_owner.
Файла должен быть в кодировке DOS.
Как посмотреть работу файла: открой командную строку и запусти в ней. Если нужно вставь в файле паузу.

mik_kovrov, 12.11.2008 - 13:15

Все разобрался, все работает и с логином sa тоже, Dimas в 24 строчке неправельно указан путь к утилите osql.exe
должно быть ... \90\Tools\Binn\osql.exe, а в файле который ты выложил ...\80\Tools\Binn\osql.exe. Но всеравно БОЛЬШОЕ СПАСИБО ЗА ПОМОЩЬ.

mik_kovrov, 12.11.2008 - 15:16

Dimas а может можно в батник команду какюнибудь добавить чтоб очищал папку быкапов при запуске чтоб планировщик не ставить, ну тоесть запускается файл BackupSQL.cmd стандартным виндузовским планировщиком, удаляет в каталоге быкапов файлы старше скажем трех дней а потом туда новый быкап делает?

_Dimas_, 13.11.2008 - 6:09

Раньше пользовался своей написанной программкой.
Запуск:
Code
DelBackup.exe [Устройство][Путь]Маска файла [N]

N - Количество оставляемых файлов, если не задано, то по умолчанию равно 20
Дабавь эту строчку в начало или конец батника и все.

Присоединённый файл  DelBackup.rar ( 20.87кб ) Кол-во скачиваний: 9

mik_kovrov, 14.11.2008 - 10:02

Dimas, несовсем понял как запускать, как маску файла указать? как будет выглядеть строчка если фал расположен d:\backup\mm_6_2008.11.12.bak ?

_Dimas_, 14.11.2008 - 10:15

Code
DelBackup.exe d:\backup\mm_6_*.bak 3

mik_kovrov, 15.11.2008 - 13:26

Dimas чет неполучается ниче с DelBackup.exe, нихочет удалять файлы, ево кудана до копировать? или в любова места запускать? может еще ключи какенибудь нужны?

_Dimas_, 18.11.2008 - 6:15

Тогда попробуй так.
Скопируй DelBackup в папку с бекапами, а для удаления напиши такой код.
Code
d:
cd d:\Backup
DelBackup.exe mm_6_*.bak 3

DarkMaximus, 25.12.2008 - 15:44

Добрый день...

Нужна помощь по созданию батника...
В общем задача следующая:
В папочку In попадают файлы которые батником переносятся в другую папку... Батник отбирает файлы:
xxxx????.c??, где x - это заданый параметр а ? - это любой параметр
Но иногда приходят файлы xxxxxxxx.c?? и надо сделать так что бы эти файлы батник не трогал! Как это реализовать? Типо сделать исключение...

_Dimas_, 26.12.2008 - 8:51

Code
xcopy "Папка источник\xxxx????.c??" "Папка приемник" /e /c /i /h /r /y /exclude:exclude.txt


Содержание файла «exclude.txt»
Цитата | Quote
file1.ext
folder1\file2.ext

В файле исключений маска вроде не работает. Надо полность файл прописывать с путем.

Legat, 26.02.2009 - 10:01

Народ, подскажите как в cmd XP сделать поиск файлов по дате или диапазону дат? Что то я туплю видимо..

_Dimas_, 27.02.2009 - 8:43

Code
dir /O:GD | find "27.02.2009"

Legat, 5.03.2009 - 11:18

не катит. поясню - найти надо файлы (однотипные) которые старее 2 месяцев. в тотале можно делать.. но не всегда

AliSSka, 7.03.2009 - 7:04

Мальчики подскажите пожалуйста как создать .BAT чтоб он мне просканировал допустим диск D и все папки в нём нашёл файлы jpg и уложил бы эти файлы в архив на диск E очень надо! пожалуйста

Alex_vk, 7.03.2009 - 18:52

обязательно батник ?

может запуск winrar с ключами прокатит ?

вот пример :
Code
winrar.exe a -r -ep3 -n*.jpg -m5 -CFG- -DH картинки.rar d:\  


Ну и описание этих ключей :
» Нажмите, для открытия спойлера | Press to open the spoiler «

AliSSka, 8.03.2009 - 2:38

а что то у меня нечего не получается sad.gif может я как то не так запускаю? помогите глупой smile.gif

Добавлено:

Alex_vk а тебе спасибки что отозвался smile.gif но что то не получается sad.gif

AliSSka, 8.03.2009 - 2:54

Alex_vk ой спасибо тебе всё получилось разобралась smile.gif

nokeMoH, 13.04.2009 - 22:39

ребят.. подскажите пожалуйста как мне затолкнуть в *.bat файл команду для запуска заданного котегория с пробелами !? у меня ничего не получается.... почитал посты, посмотрел др. форумы.. решение почти аналогичное! возлагают пропись Пути к файлам (с пробелами в пути) в Ковычках ! у меня ничего не выходит.. поможите пожалуйста.. вот к этому вот пути и файлу требуется задать *.bat 'ник ....

C:\Program Files\Mozilla Firefox\firefox.exe

как нужно записать его в *.bat файл? с какими ковычами? и где?

P.S.: AliSSka.. кстати всё это было можно сделать и посредством WinXP.. без батников.. так получилось бы и быстрее wink.gif .... ну рас уж всё уже обошлось, такда удачи тебе)..

AS007, 13.04.2009 - 22:55

Вот решил провести эксперимент
Code
C:\Program%20Files\Mozilla%20Firefox\firefox.exe
pause
C:\Program Files\Mozilla Firefox\firefox.exe
pause
"C:\Program Files\Mozilla Firefox\firefox.exe"
pause
Только с кавычками сработал smile.gif
Либо использовать пути не содержащие пробелы или менять на др. символы
Какие кавычки? в Английской раскладке, рядом с правым шифтом (русская буква Э)? нажимать в месте со шифтом smile.gif

nokeMoH, 13.04.2009 - 23:09

smile.gif эксперимент повторил.. сработало тоже только нижнее.. спасибо большое).. и есть ещё пару вопросиков.. ответьте пожалуйста! вот первый из них....

как запустить сразу 2 файла через 1 *.bat 'ник ??? при чём чтобы второй запускался через 1-3 сек. после запуска первого? это не получается((
start /wait "C:\Program Files\FireFox Ultimate Optimizer v1.1 (rus)\Firefox Ultimate Optimizer.exe"
"C:\Program Files\Mozilla Firefox\firefox.exe"

AS007, 13.04.2009 - 23:15

параметр wait, по моему ожидание, пока не завершит работу первая программа

Скорее всего, это из-за кавычек такое
А это так к слову smile.gif
Code
C:\Program Files = %PROGRAMFILES%
-------
"%PROGRAMFILES%\Mozilla Firefox\firefox.exe"

nokeMoH, 13.04.2009 - 23:20

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

а как же такда быть? наверняка веть существует другая для этого команда?

AS007, 13.04.2009 - 23:33

Вот, нашел
Code
@set @x=0 /* rem начало, обязчтельно
@echo off
rem 1-------
rem здесь, что до паузы выполняем
"%PROGRAMFILES%\FireFox Ultimate Optimizer v1.1 (rus)\Firefox Ultimate Optimizer.exe"
rem 2---------
rem пауза в 3 сек.
cscript //nologo /e:jscript "%~f0" 3000
rem 3--------
rem здесь, что после паузы выполняем
"%PROGRAMFILES%\Mozilla Firefox\firefox.exe"
rem 2---------
rem 3--------
rem и тд
rem--------
rem концовка, обязательна
goto:eof */ if(isFinite(WScript.Arguments(0))) WScript.Sleep(WScript.Arguments(0))
по вашему примеру
на двух запусках мозилы проверил, работает
-------
Вот еще вариант
Code
ping -n 10 127.0.0.1 > NUL
где 10 - число секунд
...
127.0.0.1 - localhost
NUL - подавление текстовой выдачи
Не проверял smile.gif , но точно рабочий

nokeMoH, 13.04.2009 - 23:45

боюсь что в таких вещах я не силён, и что требуется дописать у миня ничего не получиться.. но всё равну СПАСИБО! посмотрел код, правил *.bat 'ник.. через 3 сек. опять таки открывается след. зашитое приложение только после закрытия первого.. заморочки одни! я просто подумал что так будет проще.. у меня сразу 2 файла одновременно запустить из *.bat почему то не получилось!? .... я может где-то ошибся.. хотя всё делалось по той же самой схеме.... код был таким .. (Zzz...)
"C:\Program Files\Mozilla Firefox\firefox.exe"
"C:\Program Files\FireFox Ultimate Optimizer v1.1 (rus)\Firefox Ultimate Optimizer.exe"

AS007, 14.04.2009 - 8:00

Цитата | Quote(nokeMoH @ 14.04.2009 - 0:45)
у меня сразу 2 файла одновременно запустить из *.bat почему то не получилось
Вот вариант, запуска двух одновременно программ
Code
@echo off
start "" "%PROGRAMFILES%\AIMP2\AIMP2.exe"
ping -n 3 localhost>nul rem пауза в 3 сек.
start "" "%PROGRAMFILES%\Elaborate Bytes\VirtualCloneDrive\VCDPrefs.exe"
ping -n 20 localhost>nul rem пауза в 20 сек.
rem отключение запущенных программ, Вам нижнее не нужно, так для примера
taskkill /F /IM AIMP2.exe /T
taskkill /F /IM VCDPrefs.exe /T
exit
Или без пига, по приведенному примеру выше с задержкой в 3 секунды, под Ваши нужды
Code
@set @x=0 /*
@echo off
rem -------
start "" "%PROGRAMFILES%\FireFox Ultimate Optimizer v1.1 (rus)\Firefox Ultimate Optimizer.exe"
rem ---------
cscript //nologo /e:jscript "%~f0" 3000
rem --------
start "" "C:\Program Files\Mozilla Firefox\firefox.exe"
rem --------
goto:eof */ if(isFinite(WScript.Arguments(0))) WScript.Sleep(WScript.Arguments(0))
exit
START "" "программа" - первые две кавычки дают такой эффект, т.е. без ожидания.

Извиняюсь smile.gif , поправил

nokeMoH, 14.04.2009 - 18:34

smile.gif ни перестаёш миня удивлять).. всё работает просто безупречно.. огромное тибе покемонское спасибо).. работают оба кода, при чём нижний спервова раза не запустился.. немного почесав головку увидел одну лишнюю скобочку ", и после её устранения всё за играло как в сказке)..
Цитата | Quote(AS007 @ 14.04.2009 - 8:00)
Code
rem -------
start "" ""%PROGRAMFILES%\FireFox Ultimate Optimizer v1.1 (rus)\Firefox Ultimate Optimizer.exe"
rem ---------

тут вот стал ещё один такой вопросик unsure.gif

с *.bat файлика запускается все пара приложений, как это нацеленно и было.. Собственно сам бравзузер, ну и его оптимизатор для отрезки неиспользуемой памяти.. *.bat файл запускает два приложения, и естественно после закрытия самого браузера, Оптимизатор, оставающийся находиться в свёрнутом состоянии в трее у часов, уже больше не нужен! возможно ли модифицировать *.bat файл так, чтобы после закрытия браузера Mozilla Firefox автоматом закрывался и его Оптимизатор, при этом чтобы в системе не оставалось висеть *.Cmd окошко ???

AS007, 14.04.2009 - 18:53

Цитата | Quote(nokeMoH @ 14.04.2009 - 19:34)
возможно ли модифицировать *.bat файл так, чтобы после закрытия браузера Mozilla Firefox автоматом закрывался и его Оптимизатор, при этом чтобы в системе не оставалось висеть *.Cmd окошко
Вот с этим наверное не помогу (или наверное не получиться), скорее вам тогда не батник надо использовать, а vbscript.
который все этиже операции сможет проделать + следить за процессом огнелиса и как только он исчезнет (откл.), то скрипт отключит оптимизатор и завершит свою работу.

nokeMoH, 14.04.2009 - 19:05

а если нимного закрутить в сторону этого скрипта? это трудно? сам процесс его создания? и ни *.exe ли это потом получиться приложение? и если нет, то токда что? ну и получается что если этот Скрипт будет следить за процессом Огнелиса, чтобы потом прибить процесс Оптимизатора, то получается что и в этот самый момент сам Процесс Скрипта тоже будет быть должен висеть в списке Запущенных Приложений.... много памяти он выделять под себя не будет? или же всё таки наобород? всё дело то скорей закручивается в сторону одновременно и Уменьшения Подгружаемой памяти, и Простоты Доступа и Обращения ....

AS007, 14.04.2009 - 20:32

нет это не *.exe, а будет *.js (JScript) или *.vbs (VBScript)
конечно если он будет следить за огнелисом, то будет висеть в списке запущенных программ.
память не много будет занимать, там то останется только делать проверку с определенной периодичностью, раз в сек. или в три сек. есть процес или нет, если есть, ждем, если нет, то убить процесс оптимизатора.
мне это вот так представляется.
только это надо будет делать в другой теме, эта тема про батники *.bat

nokeMoH сделал Вам скрипт на *.vbs (VBScript)
Сейчас откомментирую и выложу, хотя тема не для скриптов.

AS007, 15.04.2009 - 19:25

Цитата | Quote(nokeMoH @ 14.04.2009 - 19:34)
после закрытия браузера Mozilla Firefox автоматом закрывался и его Оптимизатор
Вот пробуйте
» Запуск двух программ, при отключении первой, отключается вторая на *.vbs (VBScript) «
Или готовый скрипт
Присоединённый файл  2chekprog.zip ( 1.05кб ) Кол-во скачиваний: 5
скачать, распаковать, указать нужные программы cool.gif
-------
проверял на двух чистильщика, отлично работает wink.gif
протестируете, отпишитесь
ни каких окон нет, только процесс весит wscript
---
Все исправил wink.gif
теперь при закрытии программы и процесс wscript закрывается

лот, 10.05.2009 - 22:41

Здравствуйте, подскажите, как прописать батничек чтобы создавал папку с именем выделенного файла.

PILOTIX, 18.07.2009 - 18:06

а как зделать чтобы следующая в батнике ехе не запускалося пока не завершит работу предыдущее???
скажем есть
1.ехе
2.ехе
и пока не зевершится первй процес чтобы второй не начинл работать.

Кот в Сапогах, 18.07.2009 - 18:33

PILOTIX, у меня прошло (WINXPSP2):
Code
@echo off
call 1.exe
call 2.exe
exit

PILOTIX, 18.07.2009 - 19:25

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

Кот в Сапогах, 18.07.2009 - 19:34

PILOTIX, название архиватора и его версию, если можно.

PILOTIX, 18.07.2009 - 23:02

FreeArc 0.52 beta вот утетим я пакую.

MishaSV, 4.08.2009 - 8:47

Всем привет! smile.gif

В папке есть много xls файлов. Как можна их всех дать на печать и не открывать их.

Можна что-то придумать?
Спасибо!

charodey_mag, 4.08.2009 - 9:06

А что мешает выделить все файлы, нажать правую кнопку мыши и выбрать "Печеть"?

MishaSV, 4.08.2009 - 9:18

Цитата | Quote
А что мешает выделить все файлы, нажать правую кнопку мыши и выбрать "Печеть"?


Уже ничего...

Сенкс

Alinka-1, 6.10.2009 - 18:33

Уважаемые знатоки!
А можно ли сделать батник, чтобы:
1 Создавал на диске D папку с датой в названии (2009.10.06)
2 Содавал ярлык этой папки в C:\Documents and Settings\Пользователь\SendTo
3 Удалял предыдущий ярлык
Желательно, чтобы без мелькания «черного окна» и без подтверждений со стороны пользователя.
Тогда можно было бы каждый день иметь в меню «Отправить» папку с сегодняшной датой.

ENOTik_18654, 6.10.2009 - 19:39

Цитата | Quote
Уважаемые знатоки!
А можно ли сделать батник, чтобы:
1 Создавал на диске D папку с датой в названии (2009.10.06)
2 Содавал ярлык этой папки в C:\Documents and Settings\Пользователь\SendTo
3 Удалял предыдущий ярлык
Желательно, чтобы без мелькания «черного окна» и без подтверждений со стороны пользователя.
Тогда можно было бы каждый день иметь в меню «Отправить» папку с сегодняшной датой.


Насчет папки с датой вместо имени - можно. Ярлык - нельзя. Если только не прибегнуть к WSH

stepanyk, 6.10.2009 - 20:34

А разве не достаточно менять имя самой папки, а ярлык использовать один?

Alinka-1, 6.10.2009 - 20:35

Цитата | Quote(ENOTik_18654 @ 6.10.2009 - 19:39)
Насчет папки с датой вместо имени - можно. Ярлык - нельзя. Если только не прибегнуть к WSH
*


Простите тупую, а это что?

ENOTik_18654, 6.10.2009 - 21:26

Цитата | Quote
А разве не достаточно менять имя самой папки, а ярлык использовать один?


Да как вам угодно. Но ярлык с помощью батника не создать.

Цитата | Quote
Простите тупую, а это что?


serega1313, 7.10.2009 - 4:46

Подскажите код для очистки временной папки Windows и \Local Settings\Temp\ ,чтобы можно было поместить в автозагрузку и не знать проблем с очисткой,а то в Temp Windows заглянул а там около 100 метров мусора

_Dimas_, 7.10.2009 - 10:22

Цитата | Quote
Подскажите код для очистки временной папки Windows и \Local Settings\Temp\

Code
del /F /S /Q "%temp%\*.*" >>nul
rd /S /Q "%temp%" >>nul
md "%temp%" >>nul
del /F /S /Q "%WinDir%\temp\*.*" >>nul
rd /S /Q "%WinDir%\temp" >>nul
md "%WinDir%\temp" >>nul

_Dimas_, 7.10.2009 - 11:33

Цитата | Quote
Уважаемые знатоки!
А можно ли сделать батник, чтобы:
1 Создавал на диске D папку с датой в названии (2009.10.06)
2 Содавал ярлык этой папки в C:\Documents and Settings\Пользователь\SendTo
3 Удалял предыдущий ярлык
Желательно, чтобы без мелькания «черного окна» и без подтверждений со стороны пользователя.
Тогда можно было бы каждый день иметь в меню «Отправить» папку с сегодняшной датой.

Для ярлыка с постоянным именем
Code
for /f "tokens=1-4 delims=. " %%i in ('date /t') do set CurDate=%%k.%%j.%%i
md d:\%CurDate%
xxmklink "%UserProfile%\SendTo\MyFolder.lnk" d:\%CurDate%

Для имени ярлыка с текущей датой
(«!» в имени ярлыка, отличительный признак от других ярлыков для удаления)
Code
for /f "tokens=1-4 delims=. " %%i in ('date /t') do set CurDate=%%k.%%j.%%i
md d:\%CurDate%
del /F /S /Q "%UserProfile%\SendTo\!*.lnk"
xxmklink "%UserProfile%\SendTo\!%CurDate%.lnk" d:\%CurDate%


xxmklink - сторонняя утилита для командной строки

ENOTik_18654, 7.10.2009 - 11:35

Цитата | Quote
del /F /S /Q "%WinDir%\Temp\*.*" >>nul
rd /S /Q "%WinDir%\Temp" >>nul
md "%WinDir%\Temp" >>nul
del /F /S /Q "%UserProfile%\Local Settings\Temp\*.*" >>nul
rd /S /Q "%UserProfile%\Local Settings\Temp" >>nul
md "%UserProfile%\Local Settings\Temp" >>nul


Я бы использовал системную переменную %temp%, нежели через другие переменные окружения(WinDir, UserProfile) выходить на нее. Быть можеть путь к TEMP изменен, а значит и код будет неэффективен, например, при пути: TEMP=c:\TEMP

_Dimas_, 7.10.2009 - 11:46

Цитата | Quote
Я бы использовал системную переменную %temp%

Видишь ли если сделать так как ты сказал то очищаться будет только временная папка пользователя, а есть еще для системы временная папка.
По умолчанию %TEMP% (%TMP%) ссылается на C:\Documents and Settings\Пользователь\Local Settings\Temp
а есть еще C:\Windows\Temp

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

ENOTik_18654, 7.10.2009 - 13:22

Цитата | Quote
Видишь ли если сделать так как ты сказал то очищаться будет только временная папка пользователя, а есть еще для системы временная папка.
По умолчанию %TEMP% (%TMP%) ссылается на C:\Documents and Settings\Пользователь\Local Settings\Temp
а есть еще C:\Windows\Temp

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


Эт да. Палка о двух концах. Надо смотреть по обстановке...

Alinka-1, 7.10.2009 - 18:05

Цитата | Quote(_Dimas_ @ 7.10.2009 - 11:33)
Для ярлыка с постоянным именем
Code
for /f "tokens=1-4 delims=. " %%i in ('date /t') do set CurDate=%%k.%%j.%%i
md d:\%CurDate%
xxmklink "%UserProfile%\SendTo\MyFolder.lnk" d:\%CurDate%

Для имени ярлыка с текущей датой
(«!» в имени ярлыка, отличительный признак от других ярлыков для удаления)
Code
for /f "tokens=1-4 delims=. " %%i in ('date /t') do set CurDate=%%k.%%j.%%i
md d:\%CurDate%
del /F /S /Q "%UserProfile%\SendTo\!*.lnk"
xxmklink "%UserProfile%\SendTo\!%CurDate%.lnk" d:\%CurDate%

Спасибо, все получилось!

Anthony, 14.10.2009 - 20:07

Нужен батник для переноса профиля пользователя на другой диск.
ОС - Windows 7.

Батник должен:Или

_Dimas_, 15.10.2009 - 10:39

Цитата | Quote
Нужен батник для переноса профиля пользователя на другой диск.

1. Чтобы даже просто скопировать некоторые файлы из твоего профиля, ты как минимум должен быть под другой учетной записью
2. И если не ошибаюсь в
HKLM\SOFTWARE\Microsoft\Window NT\CurrentVersion\ProfileList\
можно поменять пути переменный, но они для всех профилей пользователей, а не только для конкретного.

Anthony, 15.10.2009 - 11:06

Цитата | Quote(_Dimas_ @ 15.10.2009 - 11:39)
Цитата | Quote
Нужен батник для переноса профиля пользователя на другой диск.

1. Чтобы даже просто скопировать некоторые файлы из твоего профиля, ты как минимум должен быть под другой учетной записью
Т.е. такой батник в принципе невозможен?

Цитата | Quote(_Dimas_ @ 15.10.2009 - 11:39)
2. И если не ошибаюсь в
HKLM\SOFTWARE\Microsoft\Window NT\CurrentVersion\ProfileList\
можно поменять пути переменный, но они для всех профилей пользователей, а не только для конкретного.
*


Это я в курсе.
И про
Code
HKLM\SOFTWARE\Microsoft\Window NT\CurrentVersion\ProfileList\
, и про
Code
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders]

_Dimas_, 15.10.2009 - 12:07

Цитата | Quote
Т.е. такой батник в принципе невозможен?

Элементарно попробуй скопировать файл реестра
\Documents and Settings\Пользователь\NTUSER.DAT

Anthony, 15.10.2009 - 12:24

Цитата | Quote(_Dimas_ @ 15.10.2009 - 13:07)
Цитата | Quote
Т.е. такой батник в принципе невозможен?

Элементарно попробуй скопировать файл реестра
\Documents and Settings\Пользователь\NTUSER.DAT
*


У меня Windows 7. Какой именно NTUSER.DAT?

_Dimas_, 15.10.2009 - 15:56

Цитата | Quote
У меня Windows 7. Какой именно NTUSER.DAT?

У меня тоже Windows 7.
Файл есть такой
С:\Users\Пользователь\NTUSER.DAT
или (одно и тоже)
С:\Documents and Settings\Пользователь\NTUSER.DAT

Steamroller, 21.12.2009 - 20:38

Доброго времени суток! Мне нужно, чтобы команда в бат-файле выполнялась по условию. Условие - достижение установленной даты <если системная дата >= (дата)>. Подскажите можно ли это сделать в батнике эту простую, в другом языке, инструкцию?

HugoBo-SS, 22.12.2009 - 1:29

использование IF




описание работы с BAT файлами



+ по ссылкам

_Dimas_, 22.12.2009 - 8:14

Цитата | Quote
Мне нужно, чтобы команда в бат-файле выполнялась по условию. Условие - достижение установленной даты

Code
echo off
rem Дату обязательно писать в формате ГГГГ.ММ.ДД
set MyDate=2009.12.22
for /f "tokens=1-4 delims=. " %%i in ('date /t') do set CurDate=%%k.%%j.%%i
if %MyDate% geq %CurDate% (моя_программа.exe)

nokeMoH, 8.01.2010 - 2:17

Ни чего ни понимаю ни в *.Bat'никах ни в Script'ах.. помогите пожалста.... Нужно что после закрытия одной программулинки, запускалась другая.. Как это реализовать, подскажите пожаласта?(.. unsure.gif

ENOTik_18654, 8.01.2010 - 13:26

Code
@ECHO OFF
start /wait notepad.exe
start mspaint.exe

nokeMoH, 8.01.2010 - 15:59

smile.gif ENOTik_18654, большое спасибоньки, всё получилось как нельзя лучше).. Но возник ещё один маленькай ньюансик.. можно ли проделать тоже самое, но только чтобы не возникало, и не тревожило Чёрное окно *.Cmd.exe (?)

charodey_mag, 8.01.2010 - 17:35

Цитата | Quote(nokeMoH @ 8.01.2010 - 15:59)
только чтобы не возникало, и не тревожило Чёрное окно *.Cmd.exe (?)
*


Эта тема много раз обсуждалась в инете, штатными средствами никак. Но много сторонних средств, вот на выбор:

4Saken, 17.08.2010 - 3:21

Доброго времени суток!

А нельзя ли создать такой BAT-ник, который создаёт папки (в директории где он находится) и берёт их имена из TXT-файла?

И, если усложнить задачу ещё и подпапки, указанные в томже ТХТ-шнике. wink.gif

ENOTik_18654, 17.08.2010 - 9:03

Цитата | Quote(4Saken @ 17.08.2010 - 4:21)
Доброго времени суток!

А нельзя ли создать такой BAT-ник, который создаёт папки (в директории где он находится) и берёт их имена из TXT-файла?

И, если усложнить задачу ещё и подпапки, указанные в томже ТХТ-шнике. wink.gif
*




Тут нужно воспользоваться средствами VBS или WSH

666666, 3.09.2010 - 21:20

Можно ли батником назначить программу по умолчанию?

например, есть ехе-шник на флешке..
запускаем батник, а он назначает из своего списка расширений файлов этому ехе-шнику..

Спасибо за ответ.

Diplodok, 3.09.2010 - 21:31

666666, что-то я вопрос совсем не понял sad.gif Хочешь, в зависимости от имеющегося файла на флешке, назначать ассоциации с этим файлом расширениям ? Или где ? Если да, то смысл ? smile.gif

666666, 4.09.2010 - 18:50

Diplodok, Смысл в том, чтоб файлы с нужным расширением например .doc, .xls, .ppt открывались по умолчанию только с помощью 2003 офиса, который лежит на флешке (как портабл софт).. а .xdoc, .xxls, .xppt - только с винта, где 2007 офис. Ну и так далее... Просто работаю с разным софтом, редакторами, бОльшая часть из которого - "portable". Работать приходится на разных компах. А каждый юзверь использует свой софт. Вот и пришла в голову мысль написать батник под каждого юзверя..
что-то типа команды set as...

Diplodok, 4.09.2010 - 22:20

666666, теперь понятно smile.gif Т.е. подстроить себя под каждого юзера ? Почему бы в таком случае не пойти с другой стороны и при вставке своей флешки в комп юзера просто не запускать какую-нибудь оболочку с выбором тех прог, что на флешке ? И работай с любыми документами с помощью своих любимых прог smile.gif
Кстати, своих "подопечных" я ориентирую на то, чтобы вначале запускать нужную прогу и потом выбирать файлы, но не наоборот, чтобы не висел ещё дополнительно проводник или какой другой файл-менеджер.
Возвращаясь к вопросу... Все эти ассоциации прописаны в реестре, т.е. тебе нужен .reg-файл. Но... уходя, надо будет вернуть всё на место. А .bat-файлом ты это нигде и никак не изменишь sad.gif

_Dimas_, 6.09.2010 - 4:25

Ну почему не изменишь?
Code
regedit.exe -s FileName.reg

Или еще есть команда:
Code
reg

dodik, 6.09.2010 - 5:05

А есть добрый человек который может написать батник для удаления драйвера шины USB,(то бишь всех USB-ых, система XP?)

ENOTik_18654, 6.09.2010 - 18:29

dodik, держи, несколько иное чем ты просил, но смысл тот же https://softoroom.org/ifolder/19187453

Diplodok, 6.09.2010 - 21:35

_Dimas_, мы говорим о "чистых" командах, а не о том, что в .bat-файл можно запихнуть выполнение .reg-файла, т.ч. извиняй, но мимо smile.gif

dodik, а зачем их удалять ? Если хочешь отключить пользование usb-устройствами, то пару движений мышом и voila smile.gif

ENOTik_18654, тогда уж лучше использовать операнд "disable", т.к. после "remove" система опять найдёт новые устройства и будет их устанавливать.

ENOTik_18654, 7.09.2010 - 8:34

Diplodok, согласен, но это было только в качестве примера smile.gif

dodik, 7.09.2010 - 16:15

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

666666, 7.09.2010 - 17:18

Diplodok,
Спасибо за ответ.
Думаю все же для каждого юзера создать по два батника (старт/стоп),
которые будут запускать файл user*.reg/default.reg - соответственно... ) Головняк, конечно, зато порядок буит..))

4Saken, 3.06.2011 - 18:10

Доброго всем времени суток!

Просьба помочь с задачкой:

Есть тхт вида:

mamba
caramba
===================
bambam
tramtram
===================
lalala
tralala
===================
trululu
trutrutru
===================
mamba
caramba
===================
restrest
tresttres
===================
...
...
===================

Необходимо сретствами простого bat или cmd

1. добавить к 1й строке одно и тоже слово через символ
2. обьединить 1ю и 2ю строку через разделитель
3. убрать все дубли (повторения)
(mamba
caramba
===================) - повторяется несколько раз
4. убрать разделитель ===================

Что должно получится в итоге - txt-шник с содержанием:

mamba!text:caramba
bambam!text:tramtram
lalala!text:tralala
trululu!text:trutrutru
restrest!text:tresttres
...!text:...

smoke, 4.11.2011 - 17:29

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

_Dimas_, 7.11.2011 - 7:09

Вот набор скриптов которыми я пользуюсь, там и SQL-базу можно забэкапить и файлы заархивировать, плюс ведется лог файл.
Необходимо:
1. Указать пути к файлам
Units\ProcPack.cmd - Переменные "ExeRar" и "Exe7z"
Units\ProcMSSQL.cmd - Переменная "ExeOsql"
2. В файле RunTask.cmd
Указать в переменной "UnitPath" путь к модулям (Папка Units).
Указать в переменной "BackupsPath" путь к месту хранения архивов
Указать в переменной "LogsPath" путь к месту хранения логов
Указать в переменной "LogFile" путь и имя общего (краткого) лог-файла
3. Добавить необходимые задания
Для добавления новой задачи архивации необходимо в разделе
ФОРМИРОВАНИЕ ЗАДАНИЙ, между строками
'echo %Date% %Time%: Формирование заданий для архивации'
и
'goto :RUN_TASKS'
вставте новую строку в формате:
'call :CREATE_TASK Имя_Задачи Команда_Выполнения_Задачи'
4. Добавить в планировщик задачу на выполнение файла RunTask.cmd

Примеры:
для SQL-базы:
call :CREATE_TASK Base1C "%UnitPath%ProcMSSQL.cmd" BackupBase SERVER BASA login password "%BackupsPath%Base1C\%CurDate%_Basa1C.bak" Pack7z
для архивации файлов:
call :CREATE_TASK Users_Doc "%UnitPath%ProcPack.cmd" 7z "%BackupsPath%Users\%CurDate%_Users_Person.7z" "D:\Users\*"

PS: В начале каждого скрипта приведены более менее подробные описания.
Если есть вопрос попробуйте для начала там почитать и возможно сами сможете разобраться.

nokeMoH, 24.12.2013 - 14:02

Добрый день любимые форумчане.. подскажите пожалуйста.. Нужен батник слейдующего характера:

Есть [.txt] файл размером не более нескольких 10-ов кБ, требуется слейдующее..

Чтобы при активации [.bat] файла (двойным по нему кликом), он автоматически в самом конце документа, заменял последие имеющиеся там символы (10, 20, 50, 100 или 200 штук символов) на одну и ту же совершенно любую букву.. Была чтобы желательно возможность править этот [.bat] файл вручную, для определения точного количества замен, на личный выбор это 100, 200 или 500 последних символов в документе, не важно сколько.. © Есть только одно условие.. Чтобы последние 5-10-20 символов в документе не были видоизменёнными, а оставались прежними.. Желательно это количество чтобы тоже в [.bat] файле контролировалось..

К примеру есть документ с содержанием таким: 1234567890qwertyuiopasdfghjklzxcvbnm ,, нужно оставить последних 5 символов, а 12 перед ним, заменить на символ Ы ,, в результате чего бы получили 1234567890qwertyuioЫЫЫЫЫЫЫЫЫЫЫЫcvbnm.. То есть общее количество символов в документе не прибавляется, а остаётся прежним, по скольку они не дописываются, а заменяются друг на друга..

Желательно результат получить в ново-созданном рядом документе, чтобы не испортить оригинальный файл..

unsure.gif Пожааалуйста, помогитее !!!

(!) произошло изменение текста для тех, кто уже успел прочитать его первую форму, небольше поправки, просим прощения..

nokeMoH, 26.12.2013 - 20:47

Извиняемся за даблпостинг.. Сделали эту тему по той причине, что найденные примеры в сети по батникам, не подходили, коряво работали, и не всегда срабатывали на различных текстах, думали может есть что-то универсальное, наверное увы((.. Нужно направленное [.exe] приложение, Просто очень нужно, рассмотрели бы любые условия, софтинка вроде бы не весьма хитровыдуманная, простая..

Какая будет примерная цена вопроса если говорить об этом.. Не отворачивайтесь пожалуйста..

eli2003, 27.12.2013 - 1:08

Вопрос - работа идет в винде?
Извиняюсь за древность - можно на Clipper exeшник сработать. (раньше с ним работал. Сейчас только изучаю С++, Яву.) При включении будет спрашивать Сколько знаков менять на какой и сколько оставлять. Но... просто тут у нас, наверняка, есть кодеры и на нормальных языках)))) Что-нибудь под виндой сделать могут. На крайний случай - стучи.

ENOTik_18654, 27.12.2013 - 7:13

nokeMoH, я думаю тут надо изобретать что-то на VBS)

nokeMoH, 27.12.2013 - 18:32

Да товарищи, софтинка такая нужна на XP.. eli2003, не разбираемся в программировании, а очень хочется.. даже не имеем представления в какой среде программирования созданная программка работала бы быстрее остальных, наверное это чуть ли ни один из самых важных параметров при написании приложений для многих.. Ну и как и другим, хотелось бы конечно что бы приложение работало относительно без замедлений.. ENOTik_18654, все найденые и испытанные Батники в сети не подходили по той только лишь причине, что они уже запинались при работе с текстом, где встречались крякозябы, - a.k.a 00-ff в HEX кодировке(..

nokeMoH, 6.01.2014 - 0:39

Большое спасибо всем за намёки и подсказки, временно все наши проблемы смогли пока решить связка из двух Консольных утилит под Win32, это DD for Windows и xvi32, к коим привели долгие, продолжительные безостановочные поиски.. Решили проблемы временно, - потому что они консольные, уж больно много боли с ними работать, что-то где-то подписывать, приписывать.. Не учились мы этому, и один лишний невнимательный знак, - и ни чего не работает, куда проще с GUI, которого нету(..

Есть одна идейка, аналогов которой нету ни где, что хочется очень воплотить наяву, по этому знаем что надоели своим незнаием и где-то глупыми вопросами.. Они со временем ещё будут появляться, пожалуйста не отворачивайтесь от чайников.. Хотелось бы и далее надеятся на Вашу помощь smile.gif ....

Legat, 7.01.2014 - 11:45

Сорри что поздновато, давно тут не был. Ну и с праздничками заодно.

Code

cls
$infile="f:\1.txt"
$out_file="f:\2.txt"
$new_substring="##########"
$toend=10
$encoding=[System.Text.Encoding]::Default
$content=[System.IO.File]::ReadAllText($infile,$encoding)
$begin_a=$content.Substring(0,$content.Length-$new_substring.Length-$toend)
$end_a=$content.Substring($content.Length-$toend)
$end_string=$begin_a + $new_substring + $end_a
[System.IO.File]::WriteAllText($out_file,$end_string,$encoding)


работает на текстовых файлах разной кодировки, указать можно в строке [System.Text.Encoding]::Default -соответствует ANSI. Думаю до пары-тройки мегабайт файлики перелопатит. размер файла сохраняется, кодировка тоже, но проверьте, какая у вас исходная - без понятия. Переменные начинаются с символа $, $toend - сколько вам надо оставить с хвоста файла. $new_substring - то на что хотите поменять.

Официальная ссылка на дистриб (Как загрузить Windows PowerShell)


! Предупреждение:
Активные ссылки на сторонние ресурсы запрещены Правилами нашего Форума. Устное предупреждение!

Anthony, 9.02.2015 - 13:09

Прошу помощи вот в чём...

Нужно устроить бэкап почты. Outlook 2010 на Windows 7.
Сама прога на компе не закрывается, письма приходят постоянно и много.

Соответственно мне необходимо сохранять на серваке в лок. сети этот файл *.pst, но так чтобы прога не закрывалась. Или закрывалась, но после бэкапа открывалась заного.

Я настроил бэкап в самой винде (Функция архивации и восстановления данных), но:
1 - На стороннем компе восстановить *.pst не смог, выдавало ошибку
2 - *.pst файл довольно увесистый, а функции удаления старых копий в майкрософте не предусмотрели. ОТсюда переполнение дискового пространства на серваке.

Вопрос...
А нельзя ли сделать батник, который бы:
- каждый день в 04:00 утра выключал бы прогу Outlook
- сжимал файл *.pst в winrar'е с добавлением в имени файла даты
- запускал копирование файла *.pst на сервак
- удалял старые копии с сервака
- включал прогу

?

_Dimas_, 9.02.2015 - 14:48

Примерно таким макаром можно сделать

Code
@echo off

rem Формирование текущей даты в формате ГГГГ.ММ.ДД
for /f "tokens=1-4 delims=. " %%i in ('echo %Date%') do (
 set CurYaer=%%k
 set CurMonth=%%j
 set CurDay=%%i
)            
set CurDate=%CurYaer%.%CurMonth%.%CurDay%

rem Что архивируем (Файл бызы Outlook)
set ArcFiles=%LocalAppData%\Microsoft\Outlook\OST-FileName.ost
rem Куда архивируем
set ArcDest=\\SERVER\SHARE\ArcOutlook\
rem Как обзываем файл (Сохраняем в формате "ИмяПК_Логин")
set ArcFile=%ComputerName%_%UserName%

rem Путь программе архиватора и параметры запуска
set ExeRar=C:\Program Files\WinRAR\Rar.exe
set ParamRar=a -dh -ep1 -m5 -os -r -rr5p -y "%ArcDest%%ArcFile%_%CurDate%" "%ArcFiles%"

rem Убиваем Outlook
taskkill /im outlook.exe /f

rem Удаляем старые копии архивов
del /F /Q "%ArcDest%%ArcFile_*.rar"

rem Запускаем архивирование
"%ExeRar%" %ParamRar%

rem Запускаем Outlook
"C:\Program Files ..... outlook.exe"

Anthony, 9.02.2015 - 17:14

Спасибо!! Супер,а куда мне вставить время начала операции?
Может сделать ежедневное задание в винде на 04:00 на выполнение этого файла?

И ещё, получается я сначала удалю все копии, а уже потом приступлю к бэкапу?
А если в этот момент ........ Я останусь без всего.

Можно ли сначала сделать бэкап, а уже потом (если всё пройдёт нормально) удалять прежние копии?

kostya-chist, 9.02.2015 - 21:21

Попробуй xStarter. То же самое, но в графическом режиме, + расписание выполнения + настраиваемая глубина (по дням, всё таки лучше иметь несколько копий) сохранения + возможность выгрузки в сеть + ещё много много интересных возможностей.

Nebel, 10.02.2015 - 3:12

Цитата | Quote(kostya-chist @ 9.02.2015 - 21:26)
Попробуй xStarter. То же самое, но в графическом режиме, + расписание выполнения + настраиваемая глубина (по дням, всё таки лучше иметь несколько копий) сохранения + возможность выгрузки в сеть + ещё много много интересных возможностей.
*


Кстати да, поддерживаю, для этих целей у меня так уже лет 5 настроено smile.gif
И как вариант можно все сделать в исполняемый файл без установки собственно программы.

Батник тут использовать только при невозможности установки чего другого.

_Dimas_, 10.02.2015 - 5:41

Цитата | Quote
а куда мне вставить время начала операции?

В планировщик.

Цитата | Quote
Можно ли сначала сделать бэкап, а уже потом (если всё пройдёт нормально) удалять прежние копии?

Можно, но тут посложней, заморочиться нужно.

_Dimas_, 10.02.2015 - 6:06

Или убери удаление и в конец добавь запуск файла с параметрами из этого поста:


версия для печати -> Полная версия

SoftoRooM © 2004-2024