интересное в мире
афоризмы дня
Ежедневная 10-ка

 BAT/CMD файлы - Форум - | ait.3dn.ru |
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум - | ait.3dn.ru | » Information Technology » Операционные Системы: Windows & *NIX » BAT/CMD файлы (BAT/CMD файлы)
BAT/CMD файлы
XsoulДата: Суббота, 02.05.2009, 22:38 | Сообщение # 1
***
Группа: root
Сообщений: 263
Награды: 3
Статус: Offline info
Архивирование по расписанию и запись архива на CD-RW

echo off
rar a 1C_ -agYYYY.MM.DD -dh -m5 @c:\windows\rarfiles.lst
G:
cd\
cd BACKUP_ALL\Sheduler
copy *.rar G:\BACKUP_ALL\CD-RW
copy *.rar G:\BACKUP_ALL\1C_BASES
cd ..
cdimage -g -h -n -o -w1 -m CD-RW BackUp-1c.iso
cdburn H: -erase
cdburn H: -sao BackUp-1c.iso
echo Y|erase BackUp-1c.iso
cd CD-RW
echo Y|erase *.rar
cd ..
cd Sheduler
echo Y|erase *.rar

пример rarfiles.lst
D:\BASES1C\2007~1 (если более чем 8.3)
D:\BASES1C\PT2005

P.S. забыл сказать, что у майкрософт есть бесплатные утилиты для пакетной работы с CD/DVD
cdimage
cdburn
dvdburn

************************************************** **************
Отключение компьютера по условию
Иногда требуется чтобы компьютер был выключен после того как какой-нибудь скрипт/батник выполнил свою задачу.
Для этого надо чтобы скрипт/батник в конце работы скопировал какой-нибудь файл, например, на С: (или куда вам угодно)
Почему не просто установить время отключения фиксировано? Очень просто: в больших организациях Б/Д разрастаются просто
как на дрожжах и поэтому трудно скорректировать время отключения. И еще один момент, можно воспользоваться внутренней
командой shutdown для отключения виндовс, но мной было замечено, что очень часто эта команда не может выключить РС.
Поэтому я воспользовался XP Tweake. Работает великолепно.
Только надо чтобы при включении компьютера удалялся файл C:\halt.h
Это удобно когда, например, машина "А" забрала еже-ночной/дневной архив с машины "В" и оповестила об этом
удаленный компьютер скопировав туда halt.h (название файла конечно произвольное)

if not exist C:\halt.h GOTO Alles
C:
cd\
cd "Program Files\XP Tweaker"
XPTweaker.exe /shutdown /force
:Alles
exit

************************************************** ***************
Как из пакетного файла сделать экспорт реестра
Иногда возникает необходимость сохранить в файл определенный куст (ветку) реестра со всеми параметрами в качестве бэкапа или для других целей. Сделать это из пакетного файла можно при помощи такой команды:

regedit.exe -ea C:\environment.reg "HKEY_CURRENT_USER\Environment"

Данная команда при выполнении пакетного файла выгрузит ветку HKEY_CURRENT_USER\Environment в файл C:\environment.reg Когда потребуется восстановить значения параметров в HKEY_CURRENT_USER\Environment, будет достаточно запустить файл environment.reg. Эту команду можно использовать для ежедневного бэкапа настроек программного обеспечения и системы, которые хранятся в реестре.
Не забывайте, что если в пути, по которому должен быть сохранен выходной файл или в имени ветки реестра есть пробел, то их необходимо заключить в кавычки.

************************************************** *****************

Как из bat файла обойти проверку даты
Некоторое программное обеспечение при запуске проверяет текущую системную дату. Если дата больше, чем заложено разработчиком, то программа не запускается. Например, разработчик считает, что версия программы может отработать месяц, а потом пользователь должен будет установить обновленную версию программы. С одной стороны это забота о пользователе, который будет иметь в своем распоряжении свежую версию программы с устраненными недочетами, по отношению к прошлым версиям. С другой стороны, производитель вынуждает пользователя скачивать новую версию даже если пользователя полностью устраивает та версия программы, которая у него установлена. Данную проблему можно легко решить при помощи следующего пакетного файла, который будет запускать программу, дожидаться ее завершения и возвращать дату на ту, которая была до запуска программы.

set tempdate=%date:~-10%
date 01-01-04
notepad.exe
date %tempdate%

В данном примере текущая системная дата сначала сохраняется в переменной, затем (во второй строке) системная дата устанавливается на 1-е января 2004 года, а потом вызывается программа, которая проверяет системную дату. В данном примере это Блокнот. До тех пор, пока открыт Блокнот, пакетный файл находится в ожидании, не завершаясь и не переводя системную дату обратно. Как только Блокнот будет закрыт, пакетный файл продолжит свое выполнение и установит системную дату на сохраненное в переменной tempdate значение, т.е. на то, которое было до запуска пакетного файла.
Не забывайте, что если путь до файла, которым запускается программа, содержит пробелы, то его (путь) необходимо заключить в кавычки. Если путь содержит кириллицу, то при написании пакетного файла необходимо использовать текстовый редактор, поддерживающий кодировку DOS (например, FAR). В противном случае, при запуске пакетного файла будет выведено сообщение о том, что "указанный файл не является внутренней или внешней коммандой...".
Если программа проверяет текущую системную дату только при своем запуске и во время работы больше этого не делает, то пакетный файл можно модифицировать, добавив перед именем исполняемого файла программы оператор start, т.е. наш пример будет выглядеть так:

set tempdate=%date:~-10%
date 01-01-04
start notepad.exe
date %tempdate%

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

************************************************** ********
Как изменить IP адрес компьютера из пакетного файла

IP адрес можно изменить при помощи команды netsh.
Чтобы правильно сменить IP адрес, сначала надо выяснить текущую конфигурацию. Сделать это можно в командной строке при помощи команды

netsh interface ip show address

Результат работы этой команды - отображение текущей конфигурации сетевого интерфейса. Нас интересует название интерфейса. Предположим, что он называется FASTNET.
Предположим, что нужно сменить IP адрес на 192.168.1.42, адресация в сети статическая, без использования DHCP, шлюз 192.168.1.1, маска 255.255.255.0 В этом случае, команда, которая должна быть выполнена из пакетного файла будет выглядеть следующим образом:

netsh interface ip set address name="FASTNET" static 192.168.1.42 255.255.255.0 192.169.1.1 1

После выполнения этой команды у интерфейса FASTNET IP адрес сменится на 192.168.1.42.
Команда netsh предоставляет широкие возможности по управлению сетевыми настройками из командной строки. Для ознакомления с другими ее функциональными возможностями пользуйтесь справкой при помощи netsh /?

************************************************** **********
Передаём параметры бат-файлу
Иногда случается, что надо сотрудницам ежедневно делать одну и туже работу:
подготовить отчет за какой-то отчетный период,создать какой-то каталог и положить в него файлы,
заархивировать и потом куда-то отправить.
Процесс "создать, положить и заархивировать" можно автоматизировать, чем облегчить труд секретаря, бухгалтера или еще кого.
(исправте только названия и пути)
Rem Сбор данных для отправки в Офис
Rem При смене года измените руками d05%1%2a.xls на d06%1%2a.xls,
Rem w05%1%2а.xls на w06%1%2а.xls, B05%1%2A.txt на B06%1%2A.txt,
Rem O05%1%2A.TXT на O06%1%2A.TXT и 2005%1%2 на 2006%1%2

If Not /%1/==// goto GoOn1
Echo Параметры: ММ ДД
Echo Первый параметр - номер месяца
Pause > Nul
goto Alles

:GoOn1
If Not /%2/==// goto GoOn2
Echo Параметры: ММ ДД
Echo Второй параметр - номер дня
Pause > Nul
goto Alles

:GoOn2

G:
cd\
cd G:\Otchet\_Out\_alw
mkdir f634
cd..
cd G:\Otchet\_Out\_alw\f634

Copy M:\Work\OVP\F634*.frm O06%1%2A.TXT
Copy G:\PrBank\MOD\RABM1\Text\B06%1%2A.txt
Copy G:\PrBank\MOD\RABM5\Text\B06%1%2A.txt
Copy G:\PrBank\MOD\RABM9\Text\B06%1%2A.txt
Arj m SPOSAD *.TXT
c:
:Alles

************************************************** ************
Создаем каталог
Если вы каждый день создаете каталог в формате DD MM, то этот процесс можно облегчить
если использовать этот бат-файл
Rem Создаем каталог
[b]If Not /%1/==// goto GoOn1
Echo Параметры: DD MM
Echo Первый параметр - номер дня
goto Alles

:GoOn1
If Not /%2/==// goto GoOn2
Echo Параметры: DD MM
Echo Второй параметр - номер месяца
GoTo Alles

:GoOn2

g:
cd\
cd otchet\_in
mkdir %1%2

************************************************** ******************
Как запретить повторный запуск приложения
Если приложение запускается bat-файлом, то отследить (и запретить) его повторный запуск можно таким образом:
pslist.exe -e "процесс"
if %errorlevel%==1 start "" "программа"
pslist - бесплатная утилита, которую можно скачать здесь.

************************************************** *****************
Как в bat файле дождаться появления определенного файла
Иногда необходимо при появлении определенного файла в папке выполнить какое-то действие. Чтобы организовать проверку появления файла в папке можно использовать следующий пакетный файл

:test
if exist c:\1.txt goto go
sleep 10
goto test
:go
notepad

Такой пакетный файл будет проверять с интервалом 10 секунд наличие в корне диска С файла 1.txt и когда файл 1.txt появится, будет выполнено действие, указанное после метки go, т.е. в этом примере будет запущен Блокнот.
Утилита sleep свободно распространяется в составе Resource Kit (скачать).

Если файл 1.txt большого размера и копируется откуда-то, то может получится так, что пакетный файл проверит его наличие в то время, как файл еще не скопировался или занят другим приложением. В таком случае, попытка выполнить какие-то действия с файлом 1.txt приведет к ошибке. Чтобы этого не произошло пакетный файл можно модифицировать следующим образом

:test
if exist c:\1.txt goto go
sleep 10
goto test
:go
rename c:\1.txt 1.txt
if not errorlevel 0 goto go
del c:\1.txt

Когда файл 1.txt скопировался на диск С не полностью, либо занят другим приложением, попытка его переименовать вызовет ошибку и цикл будет повторяться до тех пор, пока файл не скопируется полностью либо не будет освобожден. После того, как команда rename c:\1.txt 1.txt будет выполнена без ошибки (т.е. файл свободен), то с ним можно выполнять любые действия. В последнем примере это его удаление.


Верить можно только Богу. Все остальные — под подозрением .
 
Форум - | ait.3dn.ru | » Information Technology » Операционные Системы: Windows & *NIX » BAT/CMD файлы (BAT/CMD файлы)
  • Страница 1 из 1
  • 1
Поиск:

18.05.2024-Суббота
10:21
Форма входа
Приветствую Вас Гость!
Админ тебя уже достал?
отправь его отставку)
Мини-чат
200
мировые новости
IT новости
колонка юмора
Rambler's Top100 Островок на AzeriNet
Друзья сайта

MYait © 2024