PresserF
- Стаж: 1 год 11 месяцев
- Сообщений: 4
- Репутация:0[+] [-]
|
JuraAD, попробовал добавить к пакетному файлу команду, не помогло: окно запускается, а вот выполнение :abc нет.@echo off chcp 866 set title=Update Switcher :start cls ECHO %Title% ECHO. ECHO 1. Вкл./откл. обновления ECHO. ECHO 2. Вернуться в меню ECHO. ECHO 3. Выход ECHO. set /p choice=Choose an option for function: if '%choice%'=='' ECHO "%choice%" is incorrect. Try again. if '%choice%'=='1' goto 1 if '%choice%'=='2' goto cde if '%choice%'=='3' goto end goto start :1 start "uso" cmd /b & call :abc exit /b !ERRORLEVEL! :abc @echo off title Автоматическое обновление Windows >nul 2>&1 dism.exe|| ( echo/ echo Ошибка! Требуются права Администратора. echo/ pause exit ) if defined PROCESSOR_ARCHITEW6432 ( start %windir%\Sysnative\cmd.exe /c %0 exit ) cls echo/ set TrustedInstaller=*S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464 set var=%windir%\System32\wuaueng.dll icacls.exe %var%| >nul find "BUILTIN"|| goto next call :status РАЗРЕШЕНО 0a call :msg "Запретить автоматическое обновления Windows?"&& ( cls echo/ echo Запрещаю автоматическое обновление... echo ────────────────────────────────────────────────────────────── 2>nul net stop wuauserv takeown.exe /f %var% /a icacls.exe %var% /reset icacls.exe %var% /inheritance:r echo ────────────────────────────────────────────────────────────── echo Готово. call :status ЗАПРЕЩЕНО 0c pause ) exit :next set donor=%windir%\System32\ntdll.dll for %%i in (%var%) do set fname=%%~nxi call :status ЗАПРЕЩЕНО 0c call :msg "Разрешить автоматическое обновление Windows?"&& ( cls echo/ echo Разрешаю автоматическое обновление... echo ────────────────────────────────────────────────────────────── echo f| >nul xcopy /oxy %donor% %tmp%\%fname% pushd %tmp% >nul icacls.exe %fname% /save %fname%.acl popd icacls.exe %var% /reset icacls.exe %var% /setowner %TrustedInstaller% icacls.exe %windir%\System32 /restore %tmp%\%fname%.acl del /q %tmp%\%fname%* echo ────────────────────────────────────────────────────────────── echo Готово. call :status РАЗРЕШЕНО 0a pause ) exit :status color %2 echo/ echo ────────────────────────────────────────────────────────────── echo Статус автоматического обновления: * %1 * echo ────────────────────────────────────────────────────────────── echo/ exit /b :msg set ask=& set /p "ask=%~1 [1=Да/0=Нет]:" if "%ask%" neq "1" exit /b 1 :msg for /f "delims=" %%y in ('cscript.exe //nologo //e:jscript %self% %1 %2 %3') do exit /b %%y WScript.Echo (WScript.CreateObject("WScript.Shell").Popup(WScript.Arguments(0), 0, WScript.Arguments(1), WScript.Arguments(2))) cls ECHO abc
|
PresserF
- Стаж: 1 год 11 месяцев
- Сообщений: 4
- Репутация:0[+] [-]
|
JuraAD, все сделать в одном пакетном батнике не получится? Извините, только учусь писать скрипты. Про команду start, это из глубин инета взято, только оно не работает вовсе. Идея объединить куча батников в один пакетный.
|
JuraAD
- Стаж: 3 года 5 месяцев
- Сообщений: 86
- Репутация:27[+] [-]
|
Примеры для теста кода возврата:start "test" /wait cmd /c exit /b 0& if errorlevel 1 echo not 0 start "test" /wait cmd /c exit /b 1& if errorlevel 1 echo not 0 Если пример не понятен, напиши... "test" - заголовок /wait - ждать завершения cmd /c - выполнить и завершить независимо от ошибок (/k - если встретятся ошибки, консоль останется активной) потестируй разницу и прочувствуй: start "test" /wait cmd /c 12334exit /b 1& if errorlevel 1 echo not 0 start "test" /wait cmd /k 12334exit /b 1& if errorlevel 1 echo not 0 exit /b 0 - завершить с кодом возврата (без ключика /b по-разному работает, в нашем случае не видно) if errorlevel 1 echo not 0 - анализ кода возврата (если ниже 1 = false - не выводит сообщение) зы: работы много, сил нет разбирать пример, позже... зызы: все можно сделать в одном файле, зависит от методов и алгоритмов...
|
Отправлено: 21-Янв-2023 16:49
(спустя 2 дня 19 часов)
PresserF
- Стаж: 1 год 11 месяцев
- Сообщений: 4
- Репутация:0[+] [-]
|
JuraAD, попробовал, в первом случае start "test" /wait cmd /c 12334exit /b 1& if errorlevel 1 echo not 0, окно открывается и сразу закрывается, а во втором - окно открыто постоянно. Только вот не задача, если добавить строчку в пакетный файл, окно открывается и сценарий выполняется с начальной страницы, а при переходе в предыдущее окно выводится сообщении о продолжении сценария, и, вне зависимости от выбора окно закрывается.
|
JuraAD
- Стаж: 3 года 5 месяцев
- Сообщений: 86
- Репутация:27[+] [-]
|
Конвеер функций - пример "menu.cmd"@echo off if /i "%~1" neq ":.menu" ( if /i "%~1" neq ":.menu1" ( if /i "%~1" neq ":.menu2" ( start "menu" cmd /s /k ""%0" :.menu" exit /b 0 ))) goto %~1 :.menu echo menu exit /b 0 :.menu1 echo menu1 exit /b 1 :.menu2 echo menu2 exit /b 2 если просто запустить или с неизвестным параметром (отличным от: ":.menu" ":.menu1" ":.menu2" - регистр не важен) запуститься функция ":.menu" в новом окне... если: menu.cmd :.MENU menu.cmd :.MENU1 menu.cmd :.MENU2 - будет вызвана соответствующая функция... Самое главное - запускается один скрипт и все описанные функции доступны... ps: start "menu" cmd /s /k ""%0" :.menu" - ключик /k чёб видно было, что творится... зызы: почитать справку if /? cmd /? call /? start /? exit /?
|
dimo70
- Стаж: 7 лет
- Сообщений: 3785
- Репутация:27[+] [-]
- Откуда: BG
|
Всем привет, кто нибудь знает батник для автоматического импорта несколько строк в host файл?
_________________ Подпись отключена за нарушение правил форума
|
bighead
- Стаж: 3 года 1 месяц
- Сообщений: 399
- Репутация:24[+] [-]
|
dimo70,@set @x=0; /* @echo off ver |>NUL find /v "5." && if "%~1"=="" cscript.exe //nologo //e:jscript "%~f0"& exit /b Color 1A cd c:\windows\system32\drivers\etc echo yandex.ru 127.0.0.1 >> hosts echo google.ru 127.0.0.1 >> hosts echo mail.ru 127.0.0.1 >> hosts :: Эту строку не трогать. Ниже ничего не писать!!! */new ActiveXObject('Shell.Application').ShellExecute (WScript.ScriptFullName,'Admin','','runas',1);
|
dimo70
- Стаж: 7 лет
- Сообщений: 3785
- Репутация:27[+] [-]
- Откуда: BG
|
bighead,
_________________ Подпись отключена за нарушение правил форума
|
rezorustavi
- Стаж: 8 лет 11 месяцев
- Сообщений: 918
- Репутация:55[+] [-]
- Откуда: Грузия, город Рустави
|
99482dimo70, Приветствую. А то, что Hosts по умолчанию имеет атрибуты только чтение? Снятие атрибута только чтение:
attrib -h -r -s "%SystemRoot%\System32\drivers\etc\hosts"
Установка: attrib +r "%SystemRoot%\system32\drivers\etc\hosts"
|
wadimus
- Стаж: 8 лет 1 месяц
- Сообщений: 749
- Репутация:91[+] [-]
|
прелесТно, батник и JS скрипт, комбо .. это dimo70, помнится у нашего не менее прелесТного комбо-станочного цербера был уже батник по добавлению чего-то куда-то и, даже в этой теме ЗЫ. пора выходить из тени, рыжыма РО Добавлено через 4 минуты 14 секунд: rezorustavi, не акцентируй на недочёты .. bighead дал концепт! междуиты можеть батничать всё, что хочешь
|
bighead
- Стаж: 3 года 1 месяц
- Сообщений: 399
- Репутация:24[+] [-]
|
wadimus, это для запуска от админа, я как-то привык этот код добавлять, когда требуется что-то запустить от администатора, но не щёлкать лишний раз правой кнопкой мыши. Варианты как можно это осуществить и тут на форуме было обсуждение. rezorustavi, не сталкивался с этим, но если нужно добавить недолго в код.
|
Отправлено: 17-Фев-2023 19:47
(спустя 2 часа 22 минуты)
dimo70
- Стаж: 7 лет
- Сообщений: 3785
- Репутация:27[+] [-]
- Откуда: BG
|
Вот беда: сообщение появилось -C:\Users\Admin\AppData\Local\Temp\WebDrive\Host_File_Patch.bat(1, 6) Microsoft JScript compilation error: Conditional compilation is turned off Скорее вот этот вариант сработал:@echo off ver |>NUL find /v "5." && if "%~1"=="" ( Echo CreateObject^("Shell.Application"^).ShellExecute WScript.Arguments^(0^),"1","","runas",1 >"%~dp0Elevating.vbs" cscript.exe //nologo "%~dp0Elevating.vbs" "%~f0"& goto :eof ) :: cd c:\windows\system32\drivers\etc attrib -h -r -s "%SystemRoot%\System32\drivers\etc\hosts" echo activate.southrivertech.com 127.0.0.1 >> hosts echo 216.36.238.134 127.0.0.1 >> hosts echo 23.96.124.25 127.0.0.1 >> hosts echo 104.16.86.20 127.0.0.1 >> hosts echo 172.217.132.104 127.0.0.1 >> hosts attrib +r "%SystemRoot%\system32\drivers\etc\hosts" exit ::
_________________ Подпись отключена за нарушение правил форума
|
JuraAD
- Стаж: 3 года 5 месяцев
- Сообщений: 86
- Репутация:27[+] [-]
|
bighead дал концепт! между и ты можеть батничать всё, что хочешь @set @x=0 - оставляет следы в окружении -))) Для JS@if (0==1) @end /* :: код cmd exit /b 0 */ ... Для PS<# : :: код cmd exit /b 0 #> ... С HTA сложнее (":" в body попадает -))), приходится чистить)... У кого есть лучше вариант - напишите... (мне интересно):<!-- :: код cmd exit /b 0 --><script type="text/javascript">document.body.innerHTML='';</script> ...
|
Страница 83 из 94
Текущее время: 22-Дек 08:22
Часовой пояс: UTC + 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете прикреплять файлы к сообщениям Вы можете скачивать файлы
|
|