Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти

 
Расширенный поиск

800879 Сообщений в 11256 Тем- от 88239 Пользователей - Последний пользователь: dron78

27 Ноябрь 2020, 17:29:25
ADSL.Kirov.RuСообществаПрограммирование (Модератор: Ivanidze)Тема: Надо научиться писать bat-файлы
Страниц: 1 [2] 3 4  Все   Вниз
Печать
Автор Тема: Надо научиться писать bat-файлы  (Прочитано 11505 раз)
korsak
Ветеран
*****
Пол: Мужской
Сообщений: 4524



« Ответ #15 : 24 Сентябрь 2012, 17:35:31 »

Вы просто не умеете их готовить (с)  Смеющийся
Да и ТС вроде не собиралась на батниках 1С переписывать  Строит глазки
Записан

Если красота не спасет этот мир, то его погубит ложь.
Decoder
Ветеран
*****
Пол: Мужской
Сообщений: 1032



« Ответ #16 : 24 Сентябрь 2012, 17:57:22 »

Вы просто не умеете их готовить (с)  Смеющийся

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

Да и ТС вроде не собиралась на батниках 1С переписывать  Строит глазки

Скорее пишет курсовую.
Записан
zrche
Старожил
****
Пол: Мужской
Сообщений: 496



« Ответ #17 : 24 Сентябрь 2012, 19:42:54 »

Скрипты - дрянь. Учи нормальный язык.
А какой нормальный?
Записан

I came, I puked, I left
korsak
Ветеран
*****
Пол: Мужской
Сообщений: 4524



« Ответ #18 : 24 Сентябрь 2012, 19:53:35 »

А какой нормальный?
думаешь он сразу спалится и дельфя назовет? Улыбка
Записан

Если красота не спасет этот мир, то его погубит ложь.
Decoder
Ветеран
*****
Пол: Мужской
Сообщений: 1032



« Ответ #19 : 24 Сентябрь 2012, 20:35:57 »

А какой нормальный?

толсто
Записан
korsak
Ветеран
*****
Пол: Мужской
Сообщений: 4524



« Ответ #20 : 24 Сентябрь 2012, 21:19:07 »

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

Если красота не спасет этот мир, то его погубит ложь.
Decoder
Ветеран
*****
Пол: Мужской
Сообщений: 1032



« Ответ #21 : 25 Сентябрь 2012, 04:52:10 »

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

Консольные проекты ни в дельфях ни в шарпах вроде никто не отменял.
Записан
xxzz
Старожил
****
Пол: Мужской
Сообщений: 477



« Ответ #22 : 25 Сентябрь 2012, 06:29:22 »

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

Цитировать
но! что за операция neq?
Всю жизнь писал так: if not "1"=="2" ...... Смеющийся

Цитировать
1. скобки подразумевают, что все, что в них написано, должно быть выполнено при истинности условия? т.е. это типа операторных скобок begin-end? я могу скобки поставить сразу перед и сразу после команд, а не одинокие скобки в конце и в начале строк?
Да, но есть нюансы в применении скобок.

Цитировать
3. по какому принципу расставляются точки с запятой? в конце файла должна быть точка с запятой или что? в некоторых примерах у меня стоит точка с запятой, а в некоторых - нет
; в файлах не нужны, в конце echo этот символ будет выведен на экран, с командой pause скорее всего проигнорирован

Вы просто не умеете их готовить (с)  Смеющийся
Да и ТС вроде не собиралась на батниках 1С переписывать  Строит глазки
+1 Смеющийся

Да брось, тысячи их написаны Улыбка Хотя не могу за себя сказать, что знаю все команды досконально.
А надо стремиться к совершенству и учить, учить команды Смеющийся
Записан



Decoder
Ветеран
*****
Пол: Мужской
Сообщений: 1032



« Ответ #23 : 25 Сентябрь 2012, 17:23:04 »

А надо стремиться к совершенству и учить, учить команды Смеющийся

не смеши
Записан
Shire
Ветеран
*****
Пол: Мужской
Сообщений: 1015



« Ответ #24 : 25 Сентябрь 2012, 20:19:05 »

Огромный минус подобных скриптов - в том, что у них интерпретатор вызывается неявно, т.е. нет разделения на строки данных и на код команд, и не выделена явная работа со строками (подстрока/замена/шаблонизация).
В этом случае "интересный символ" в имени файла или параметре, который подставляется в генерируемую команду, может чудесным образом изменить эту команду до неузнаваемости.
Как вариант замены, Microsoft предложила PowerShell с объектными конвейерами, также есть python'овые и lua-шеллы. Но народ настолько привык, что везде лупит cmd- и shell-скрипты.
Записан
Meys
Старожил
****
Пол: Мужской
Сообщений: 424



WWW
« Ответ #25 : 11 Май 2016, 15:50:25 »

Помогите пожалуйста Нужно написать bat файл который бы перезагружал компьютер в безопасном режиме и в безопасном режиме же применялся твик реестра, затем автоматически перезагрузка в обычный режим. Возможно ли такое?
Записан

Blackman
Администратор
*****
Пол: Мужской
Сообщений: 1512



WWW
« Ответ #26 : 11 Май 2016, 16:56:42 »

Оно? http://forum.oszone.net/thread-297520.html
Записан

что-нибудь жизнеутверждающее

Meys
Старожил
****
Пол: Мужской
Сообщений: 424



WWW
« Ответ #27 : 11 Май 2016, 17:12:08 »

Да, оно, читал уже это но все равно не могу разобраться. не могу понять сам принцип этой команды
Код:
Echo Off

REM Check Windows Version
ver | findstr /i "5\.0\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt5x
ver | findstr /i "5\.1\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt5x
ver | findstr /i "5\.2\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt5x
ver | findstr /i "6\.0\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt6x
ver | findstr /i "6\.1\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt6x
ver | findstr /i "6\.2\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt6x
ver | findstr /i "6\.3\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt6x
ver | findstr /i "10\.0\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt10x
goto warn_and_exit

:ver_nt5x
:Run Windows 2000/XP specific commands here
bootcfg /raw /a /safeboot:network /id 1
REG ADD HKLMSOFTWAREMicrosoftWindowsCurrentVersionRunOnce /v "*UndoSB" /t REG_SZ /d "bootcfg /raw /fastdetect /id 1"
SHUTDOWN -r -f -t 03
goto end

:ver_nt6x
:Run Windows Vista/7/8/8.1 specific commands here
bcdedit /set {current} safeboot network
REG ADD HKLMSOFTWAREMicrosoftWindowsCurrentVersionRunOnce /v "*UndoSB" /t REG_SZ /d "bcdedit /deletevalue {current} safeboot"
SHUTDOWN -r -f -t 03
goto end

:ver_nt10x
:Run Windows 10 specific commands here
bcdedit /set {current} safeboot network
REG ADD HKLMSOFTWAREMicrosoftWindowsCurrentVersionRunOnce /v "*UndoSB" /t REG_SZ /d "bcdedit /deletevalue {current} safeboot"
SHUTDOWN -r -f -t 03
goto end

Echo On

:warn_and_exit
echo Machine OS cannot be determined.

:end

как туда вставить (в какое место) твик реестра?
Записан

Blackman
Администратор
*****
Пол: Мужской
Сообщений: 1512



WWW
« Ответ #28 : 11 Май 2016, 18:01:54 »

В этом коде первый блок - определение версии windows (для разных версий разный код для выбора варианта), затем идет 3 варианта в зависимости от версии. Строка типа
Код:
bootcfg /raw /a /safeboot:network /id 1
включает следующую загрузку в безопасном режиме.
строка
Код:
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /v "*UndoSB" /t REG_SZ /d "bootcfg /raw /fastdetect /id 1"
добавляет в автозапуск (в реестре) однократно аналогичную команду, но выключающую безопасный режим. она будет выполнена после следующей загрузки windows.
тебе надо составить аналогичным образом еще одну команду для манипуляции с реестром после перезагрузки.
ну и наконец строка
Код:
SHUTDOWN -r -f -t 03
непосредственно отправляет на перезагрузку.

Осталось решить как сделать перезагрузку из безопасного режима после гарантированного выполнения всех этих команд. Там могут быть хитрости с последовательностью, команда на перезагрузку, если ее добавить так же в реестре, может выполниться раньше, чем остальные добавленные здесь.
Это можно решить, например, через bat-файл в папке автозапуска, который сам себя удалит. Папка "автозагрузка" в пуске выполняется определенно после команд в реестре.
« Последнее редактирование: 11 Май 2016, 18:04:30 от Blackman » Записан

что-нибудь жизнеутверждающее

Meys
Старожил
****
Пол: Мужской
Сообщений: 424



WWW
« Ответ #29 : 11 Май 2016, 18:23:25 »

Код:
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /v "*UndoSB" /t REG_SZ /d "bootcfg /raw /fastdetect /id 1"
на сколько я понимаю этот код добавляет в реестр новый параметр типа REG_SZ, а как сделать чтобы не добавить а изменить имеющийся параметр REG_DWORD?
Записан

Страниц: 1 [2] 3 4  Все   Вверх
Печать
ADSL.Kirov.RuСообществаПрограммирование (Модератор: Ivanidze)Тема: Надо научиться писать bat-файлы
Перейти в: