Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Две системы - перезагрузка. (http://forum.oszone.net/showthread.php?t=181933)

semiono 01-08-2010 23:18 1464864

Две системы - перезагрузка.
 
Пришла незатейливая идея, подскажите!...
Нужно в файле boot.ini заменить дефолтную строку, всмысле каждый раз на другую - не дефолтную.
Напомню содержимое, например мой boot.ini файл:

Код:

[boot loader]
timeout=2
default=multi(0)disk(0)rdisk(0)partition(3)\J
[operating systems]
multi(0)disk(0)rdisk(0)partition(3)\J="OS (x64)" /fastdetect
multi(0)disk(0)rdisk(0)partition(3)\I="OS (x86)" /fastdetect
C:\BOOT.BIN=":.:.:.:"

Надо зделать так, чтобы скрипт поочерёдно заменял
строку multi(0)disk(0)rdisk(0)partition(3)\J на multi(0)disk(0)rdisk(0)partition(3)\I

Смысл в том, что любая строка может быть любой, (то-есть её надо обязательно считывать
из файла, а не указать явно), например, multi(0)disk(0)rdisk(1)partition(2)\WINZZ итп.

А смысл скрипта в том чтобы просто кликнуть по нему и неглядя перезагрузиться в другую систему,
так как лезть в "control sysdm.cpl,,3" слишком далеко. Я потом даже shutdoun.exe... добавлю в скрипт.

Если надо перезагрузиться в текущую систему, то скрипт не нужен :)

Creat0R 02-08-2010 01:23 1464897

Так:

Код:

$sBootIni_File = @HomeDrive & "\boot.ini"

$sBootLoader_Default = IniRead($sBootIni_File, "Boot Loader", "Default", "")

$aOperatingSystems = IniReadSection($sBootIni_File, "Operating Systems")

For $i = 1 To UBound($aOperatingSystems)-1
    If $aOperatingSystems[$i][0] <> $sBootLoader_Default Then
        IniWrite($sBootIni_File, "Boot Loader", "Default", $aOperatingSystems[$i][0])
        ExitLoop
    EndIf
Next

?

Кстати, на эту тему есть Boot Manager - Выбор ОС для загрузки.

semiono 02-08-2010 02:00 1464907

Отлично! Я сначала думал только номер партишн будет меняться, действительно и название папки заменяется!
У меня две XP на одном диске стоят, поэтому это важно было.

Я к скрипту добавлю ещё такое
#Include <Constants.au3>
#NoTrayIcon
TraySetIcon("warning")
Sleep(1000)
Shutdown(6)
:)

Цитата:

Цитата Creat0R
Boot Manager - Выбор ОС для загрузки. »

Это хорошо! Но мне нравиться когда аскетично. Чтоб вообще без окон :)

Кстати, этот скрипт можно тоже порекомендовать, может тоже найдёт любителей, офигенно простое решение,
однако мне не приходила раньше эта идея. Но зато с правильным выверенным кодом от Creat0R! Спасибо +1


Время: 01:35.

Время: 01:35.
© OSzone.net 2001-