Четверг, 02.05.2024, 05:04
Зайди на минутку
Главная Регистрация Вход
Приветствую Вас, Залетный · RSS

 test
Copyright MyCorp © 2010
Профиль
Привет: Залетный

Сообщения:

Гость, мы рады вас видеть. Пожалуйста зарегистрируйтесь или войдите!
Меню сайта
Поиск
Форумные дела
Зрелые женщины
Флудить так флудить ..
Где кто отдыхает или отдыхал
Маленький городок
Предложения и пожелания
спамеры ))
Прицепились
Съедобное - Не съедобное
Цепочка
Google Chrome
стоит отметить


Форма входа
 Каталог статей
Главная » Статьи » Программирование » CMD Windows


Примеры использования возможностей CMD
Архивирование по расписанию и запись архива на 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
Эти утилиты свободно распространяются в составе Resource Kit (скачать).

Отключение компьютера по условию
Иногда требуется чтобы компьютер был выключен после того как какой-нибудь скрипт/батник выполнил свою задачу.
Для этого надо чтобы скрипт/батник в конце работы скопировал какой-нибудь файл, например, на С: (или куда вам угодно)
Почему не просто установить время отключения фиксировано? Очень просто: в больших организациях Б/Д разрастаются просто
как на дрожжах и поэтому трудно скорректировать время отключения. И еще один момент, можно воспользоваться внутренней
командой 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 Создаем каталог
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 будет выполнена без ошибки (т.е. файл свободен), то с ним можно выполнять любые действия. В последнем примере это его удаление.

Как из одного bat-файла запустить другой
Иногда, при выполнении пакетного файла, возникает необходимость запустить другой пакетный файл. Причем, в некоторых случаях, выполнение основного пакетного файла должно быть приостановлено, пока выполняется вспомогательный файл, а в других вспомогательный файл должен работать параллельно с основным.
Для примера создадим два bat файла. Один с именем 1.bat и содержащий всего одну команду

call 2.bat

Второй с именем 2.bat и также содержащий одну команду

pause

Теперь запустим файл 1.bat Откроется окно, в котором будет предложено нажать любую клавишу для продолжения, после нажатия которой окно закроется. Таким образом, вызов из одного пакетного файла другого при помощи команды call останавливает исполнение пакетного файла до тех пор, пока не завершится выполнение пакетного файла, вызванного командой call.
В другом случае, надо запустить из bat файла либо приложение, либо другой пакетный файл, не прерывая выполнения основного пакетного файла. Такое нередко бывает нужно сделать, например, принудительно открыв лог работы пакетного файла, запланированного на ночь, чтобы с утра, пользователь мог проконтролировать правильность его выполнения. Для этого используется команда start Исправим в файле 1.bat строку на

start 2.bat

и запустим файл 1.bat Теперь открылось окно, в котором для продолжения надо нажать любую кнопку, а окно основного пакетного файла (1.bat) отработав закрылось.
Таким образом, для вызова из одного пакетного файла другого, без остановки работы первого пакетного файла, нужно применять команду start.
Рассмотренные команды start и call могут использоваться не только для запуска других пакетных файлов, но и для запуска любых приложений или открытия файлов.
Например, команда start log.txt, находящаяся в теле пакетного файла, откроет файл log.txt в Notepad без остановки работы пакетного файла.

Как автоматизировать удаление файлов по типу
Чтобы очистить диск от временных файлов можно использовать команду

del /f /s /q C:\*.tmp

Где
/f - удаляет все файлы, даже если у них установлен атрибут только чтение
/s - удаляет файлы из всех подкаталогов
/q - отключает запрос на подтверждение удаления файла
C: - диск, на котором будут найдены и удалены файлы. Можно указать не весь диск, а папку, например, C:\WinNT
*.tmp - тип файлов, которые будут удалены
Будьте аккуратны с ключем /q и типами удаляемых файлов. Команда удаляет, не спрашивая разрешения и при указании неправильного типа файлов может удалить лишнего.

Защита Flash-ки от записи новых файлов.

Защита флешки от записи новых файлов осуществляется путем определения свободного пространства на ней, с последующим полным его заполнением, используя утилиту fsutil. Такой метод отлично подходит, например, для защиты загрузочных флешек (имеющих файл autorun.inf), которые невозможно защитить созданием одноименного каталога AUTORUN.INF.

Fsutil является служебной программой командной строки. Для использования программы fsutil необходимо войти в систему с помощью учетной записи администратор или члена группы администраторов.
можно вывести Help:
fsutil /?

Такой способ, как выяснилось в результате тестирования, имеет 1 минус:
  1. Создание больших файлов занимает несколько минут времени. А если понадобилось удалить защитный файл, дописать что-то на флешку, а потом снова выставить защиту? Снова теряется время на создание большого файла
Создаём файл VirusKaput.cmd:

@echo off
setlocal enabledelayedexpansion
set /a sizofile=1024 * 1024 * 1024
for /l %%K in (1,1,256) do (
for /f "tokens=3" %%J in ('dir %~d0 /-C') do (set freespace=%%J)
if !freespace! EQU 0 goto ready
if !freespace! GTR !sizofile! (
call :getime
fsutil file createnew "%~d0\[ 1024 Mb ] !randtime!" !sizofile!
) else (
for /l %%K in (1,1,5) do (
for /f "tokens=3" %%J in ('dir %~d0 /-C') do (set freespace=%%J)
set /a sizofilemb=!sizofile! / 1024 /1024 / 2
set /a sizofile=!sizofile! / 2
if !freespace! GEQ 67108864 (
if !freespace! GEQ !sizofile! (
call :getime
fsutil file createnew "%~d0\[ !sizofilemb! Mb ] !randtime!" !sizofile!
)
) else (
if !freespace! EQU 0 goto ready
call :getime
fsutil file createnew "%~d0\[ 1-63 Mb ] !randtime!" !freespace!
goto :EOF
)
)
)
)

:getime
set randtime=!time:~-10!
set randtime=!randtime::=!
set randtime=!randtime:,=!
exit /b

Логика работы кода следующая:
  • определяется количество свободного пространства на флешке
  • если свободного пространства больше 1Gb — создаем файлы размером 1Gb до тех пор, пока это условие выполняется
  • Когда свободного пространства меньше 1 гигабайта — последовательно пытаемся создать файлы размером 512Mb, 256Mb, 128Mb, 64Mb и последний файл размером от 1 до 63Mb
В итоге на флешке создается примерно следующая структура файлов, заполняющая все свободное место (7-значный уникальный код в конце названия каждого файла необходим для избежания ошибки создания файлов с одинаковыми именами):

[ 1-63 Mb ] 7344296
[ 64 Mb ] 7343581
[ 256 Mb ] 6050959
[ 512 Mb ] 6043075
[ 1024 Mb ] 2341570
[ 1024 Mb ] 2353157


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

Строго говоря, такой метод нельзя считать полным аналогом аппаратного переключателя «read-only», имеющегося на некоторых видах флешек. Даже если флешка защищена от записи новых файлов описанным методом, вирус имеет возможность создать файл autorun.inf на флешке — но вот записать что-либо в этот файл уже не сможет.

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

Таким образом, считать такой способ защитой от записи можно только в контексте невозможности создания на флешке непустых новых файлов. Что однако, как показывает практика, является серьезной мерой защиты от autorun-вирусов. Как говорилось выше, этот метод отлично подходит для защиты загрузочных флешек (имеющих файл autorun.inf), которые невозможно защитить созданием одноименного каталога AUTORUN.INF, а также для флешек с личным набором необходимого программного обеспечения, подключаемого к чужим компьютерам.
Категория: CMD Windows | Добавил: -=shurf=- (24.06.2010)
Просмотров: 799 | Комментарии: 1 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Naminutku.ucoz.ru ©2024 - 2010
Погода
Категории раздела
CMD Windows [1]
Статейки по работе с CMD
HTML [14]
Здесь собраны статьи связанные с языком гипертекстовой разметки,а по простому - HTML
Internet (WEB-программирование) [10]
Обои на десктоп
Мини-чат
Наш опрос
Какому антивирусу Вы доверяете
Всего ответов: 32
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Сторонние счетчики
Seo анализ сайта
Сделать бесплатный сайт с uCoz