CMD/BAT - [решено] Поясните батник, суть его работы.

Аватара пользователя
Pozia

CMD/BAT - [решено] Поясните батник, суть его работы.

Сообщение Pozia »

Вот собственно батник:



Код:

Код: Выделить всё

CLS
@ECHO OFF
TITLE Drivers-from-CD Installation
color 1F
::  Set Current Drive as CD
	CD /D "%~dp0"
::  Set Drivers Location Folder
	SET DRV=Drivers
::  Ticker script
	ECHO.exec hide %CD%\Process.exe -r setup.exe >%SystemDrive%\Ticker.ncl
	ECHO.wait 10000 >>%SystemDrive%\Ticker.ncl
	ECHO.exec hide %CD%\Process.exe -p SetupCopyOEMInf.exe high >>%SystemDrive%\Ticker.ncl
	ECHO.exec hide %CD%\Process.exe -s setup.exe >>%SystemDrive%\Ticker.ncl
	ECHO.wait 50000 >>%SystemDrive%\Ticker.ncl
	ECHO.script %SystemDrive%\Ticker.ncl >>%SystemDrive%\Ticker.ncl
::  Pre-Install (Suspend Setup, and Set Setup to Low Priority)
	.\Process.exe -s setup.exe
	.\Process.exe -p setup.exe low
::  Allow for Unsigned Drivers
	START .\WatchDriverSigningPolicy.exe
::  If Compressed Drivers Exist, Unzip Them & Change Drivers Location Folder to Hard Drive
	IF EXIST Drivers.7z (
	SET DRV=%SystemDrive%\WINDOWS\DriversPozia
	.\7z.exe x -y -aoa -o"%SystemDrive%\WINDOWS\DriversPozia" ".\Drivers.7z"
	)
::  Run NirCmd Ticker Script (code above)
	START .\NirCmd.exe script %SystemDrive%\Ticker.ncl
::  Install Drivers
	.\SetupCopyOEMInf.exe "%DRV%"
::  Post-Install (Close NirCmd, Setup Priority back to Normal, Resume Setup)
	.\Process.exe -k NirCmd.exe
	.\Process.exe -p setup.exe normal
	.\Process.exe -r setup.exe
::  Delete Ticker File
	DEL %SystemDrive%\Ticker.ncl
EXIT

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

Данный батник запускается через WINNT.SIF и пока он не отработает установка винды не продолжается. За счет чего этот эфект достигается??? Что тормозит процеес установки винды а затем запускает эту установку?
Аватара пользователя
amel27

Re: CMD/BAT - [решено] Поясните батник, суть его работы.

Сообщение amel27 »

Цитата Pozia:



Что тормозит процеес установки винды а затем запускает эту установку?
CMD/BAT - [решено] Поясните батник, суть его работы.






Код:

Код: Выделить всё

::  Pre-Install (Suspend Setup, and Set Setup to Low Priority)
    .\Process.exe -s setup.exe
    .\Process.exe -p setup.exe low
:: ....
::  Post-Install (Close NirCmd, Setup Priority back to Normal, Resume Setup)
    .\Process.exe -p setup.exe normal
    .\Process.exe -r setup.exe

кроме того, в фоне крутится NirCmd-скрипт (Ticker.Ncl), который включает Setup.Exe на 10 сек и отключает на 50 сек., линк на утилиту:
Command Line Process Viewer/Killer/Suspender for Windows NT/2000/XP




З.Ы. А нельзя сразу дать ссылку на оригинал MSFN?
Drivers from CD: Simple Method
Аватара пользователя
Pozia

Re: CMD/BAT - [решено] Поясните батник, суть его работы.

Сообщение Pozia »

amel27, Данного автоит скрипта:





Код:

Код: Выделить всё

#NoTrayIcon
#include 
$iWidth = 420
$iHeight = 200
$hGUI = GUICreate("DriversNEW", $iWidth, $iHeight)
GUISetBkColor(0xBEBEBE) ;цвет окна 
GUICtrlCreateLabel("Хотите установить обновленный пакет драйверов DriversNEW?", 10, 20)
GUICtrlCreateLabel("Помните!", 170, 50)
GUICtrlCreateLabel("При установке DriversNEW набор стандартных драйверов Windows", 10, 80)
GUICtrlCreateLabel("будет использоваться в последнюю очередь.", 10, 95)
GUICtrlCreateLabel("Если после установки DriversNEW у Вас будут проблемы в работе Windows", 10, 115)
GUICtrlCreateLabel("переустановите систему без использования DriversNEW.", 10, 130)
$Yes_Button = GUICtrlCreateButton("                      Да                      ", 35, 160)
$No_Button = GUICtrlCreateButton("                      Нет                      ", 220, 160)
GUISetState(@SW_SHOW, $hGUI)
	RunWait("hidcon.exe Process.exe -s setup.exe")
	RunWait("hidcon.exe Process.exe -p setup.exe low")
While 1
    Switch GUIGetMsg()
        Case $No_Button, $GUI_EVENT_CLOSE
		RunWait("hidcon.exe Process.exe -p setup.exe normal")
		RunWait("hidcon.exe Process.exe -p setup.exe normal")
        	Exit
        Case $Yes_Button
        GUIDelete($hGUI) ;Удаление окна
		RunWait("hidcon.exe Drivers.cmd")
		RunWait("hidcon.exe Process.exe -p setup.exe normal")
		RunWait("hidcon.exe Process.exe -p setup.exe normal")
            	Exit
    EndSwitch
WEnd

Мне достаточно чтобы остановить установку и установив дрова продолжить установку виндовс?




Цитата amel27:



кроме того, в фоне крутится NirCmd-скрипт (Ticker.Ncl), который включает Setup.Exe на 10 сек и отключает на 50 сек., линк на утилиту:
CMD/BAT - [решено] Поясните батник, суть его работы.




мне это нужно как то в автоит скрипте реализовать? Если да то как?




Цитата amel27:



З.Ы. А нельзя сразу дать ссылку на оригинал MSFN?
CMD/BAT - [решено] Поясните батник, суть его работы.




Если я не знаю ориинальной ссылки так как не лажу по англоязычным сайтам то как я могу дать Вам эту ссылку Изображение
Аватара пользователя
Pozia

Re: CMD/BAT - [решено] Поясните батник, суть его работы.

Сообщение Pozia »

Цитата Pozia:



мне это нужно как то в автоит скрипте реализовать?
CMD/BAT - [решено] Поясните батник, суть его работы.




смысл?.. не проще запустить весь батник из скрипта?




Цитата Pozia:



Если я не знаю ориинальной ссылки так как не лажу по англоязычным сайтам то как я могу дать Вам эту ссылку
CMD/BAT - [решено] Поясните батник, суть его работы.




вопрос был риторический :)
Аватара пользователя
amel27

Re: CMD/BAT - [решено] Поясните батник, суть его работы.

Сообщение amel27 »

Цитата amel27:



смысл?.. не проще запустить весь батник из скрипта?
CMD/BAT - [решено] Поясните батник, суть его работы.




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

amel27, а Вы могли бы весь этот батник переписать в автоит?? (простите за наглость Изображение ). Знаю не по наслышке Вы гений в этих скриптах Изображение
Аватара пользователя
Pozia

Re: CMD/BAT - [решено] Поясните батник, суть его работы.

Сообщение Pozia »

Цитата Pozia:



Если не нажать сразу же Да как появляется окно вопроса, то установка винды продолжится. Вот я и хотел узнать как установку винды тормознуть при запуске скрипта.
CMD/BAT - [решено] Поясните батник, суть его работы.




в таком случае варианов два:



1. При входе в скрипт тормознуть SETUP через process.exe, непосредственно перед запуском батника вернуть всё обратно... впрочем, приоритет лучше оставить низким, ограничиться только командой "resume". Плюс - не нужно редактировать батник.



2. Полностью перенести из батника в AU3-скрипт две отмеченные выше пары команд с Process.Exe - останавливать при входе в скрипт и восстанавливать при выходе.




Цитата Pozia:



могли бы весь этот батник переписать в автоит??
CMD/BAT - [решено] Поясните батник, суть его работы.




уже сказал - не вижу смысла... тем паче использование AutoIT на T39 - рискованное мероприятие, т.к. к этому времени инициализированы еще не все компоненты ОС




Цитата Pozia:



Знаю не по наслышке Вы гений в этих скриптах
CMD/BAT - [решено] Поясните батник, суть его работы.




-10 ...с таким подходом рискуете остаться без ответов
Аватара пользователя
amel27

Re: CMD/BAT - [решено] Поясните батник, суть его работы.

Сообщение amel27 »

Цитата amel27:



При входе в скрипт тормознуть SETUP через process.exe, непосредственно перед запуском батника вернуть всё обратно...
CMD/BAT - [решено] Поясните батник, суть его работы.




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


Цитата amel27:



впрочем, приоритет лучше оставить низким, ограничиться только командой "resume"
CMD/BAT - [решено] Поясните батник, суть его работы.




вот это не понял, можно подробнее?
Аватара пользователя
Pozia

Re: CMD/BAT - [решено] Поясните батник, суть его работы.

Сообщение Pozia »

Цитата Pozia:



если следовать логике, то не успеет ли винда проскочить этап т39 пока я буду тормозить, восстанавливать установку через Автоит скрипт, и затем снова тормозить через батник? Ведь между выполнением команд есть некоторые промежутки времени
CMD/BAT - [решено] Поясните батник, суть его работы.




если следовать такой логике, то и батник не должен работать, так как он выполняет именно это: периодически включает и отключает SETUP, а при полном его отключении драйверы просто не установятся (инфа из темы на MSFN)... так что приходится идти на компромисс - а для того, чтобы SETUP не "проскочил" ему ставят минимальный приоритет выполнения




Цитата Pozia:



можно подробнее?
CMD/BAT - [решено] Поясните батник, суть его работы.




"Process.exe -p setup.exe low" - установить низкий приоритет (при входе в скрипт)

"Process.exe -s setup.exe" - остановить процесс установки (на время обработки GUI)

"Process.exe -r setup.exe" - включить процесс установки (перед запуском батника)

"Process.exe -p setup.exe normal" - восстановить нормальный приоритет (при выходе из скрипта)
Аватара пользователя
amel27

Re: CMD/BAT - [решено] Поясните батник, суть его работы.

Сообщение amel27 »

amel27, если я Вас правильно понял батник я не трогая а скрипт автоит должен быть такой:





Код:

Код: Выделить всё

#NoTrayIcon
#include 
$iWidth = 420
$iHeight = 200
$hGUI = GUICreate("DriversNEW", $iWidth, $iHeight)
GUISetBkColor(0xBEBEBE) ;цвет окна 
GUICtrlCreateLabel("Хотите установить обновленный пакет драйверов DriversNEW?", 10, 20)
GUICtrlCreateLabel("Помните!", 170, 50)
GUICtrlCreateLabel("При установке DriversNEW набор стандартных драйверов Windows", 10, 80)
GUICtrlCreateLabel("будет использоваться в последнюю очередь.", 10, 95)
GUICtrlCreateLabel("Если после установки DriversNEW у Вас будут проблемы в работе Windows", 10, 115)
GUICtrlCreateLabel("переустановите систему без использования DriversNEW.", 10, 130)
$Yes_Button = GUICtrlCreateButton("                      Да                      ", 35, 160)
$No_Button = GUICtrlCreateButton("                      Нет                      ", 220, 160)
GUISetState(@SW_SHOW, $hGUI)
RunWait("hidcon.exe Process.exe -s setup.exe")
RunWait("hidcon.exe Process.exe -p setup.exe low")
While 1
    Switch GUIGetMsg()
        Case $No_Button, $GUI_EVENT_CLOSE
		RunWait("hidcon.exe Process.exe -p setup.exe normal")
		RunWait("hidcon.exe Process.exe -r setup.exe")
        	Exit
        Case $Yes_Button
        GUIDelete($hGUI) ;Удаление окна
		RunWait("hidcon.exe Process.exe -r setup.exe")
		RunWait("hidcon.exe Drivers.cmd")
            	Exit
    EndSwitch
WEnd

Все верно?
Аватара пользователя
Pozia

Re: CMD/BAT - [решено] Поясните батник, суть его работы.

Сообщение Pozia »

Цитата Pozia:



если я Вас правильно понял батник я не трогая а скрипт автоит должен быть такой
CMD/BAT - [решено] Поясните батник, суть его работы.




последовательность команд - да, что касается самого скрипта сходу не скажу... кроме того в данной категории/ветке это оффтоп... не понял только, зачем батник вызывать через RunWait ?.. скрипт должен дождаться окончания его работы?
Ответить

Вернуться в «Скриптовые языки администрирования Windows»