Re: Autopodmiana w sekcjach [system/win].ini

Autor: Grzegorz Krawczyk (krawczyk_at_galaxy.uci.agh.edu.pl)
Data: Fri 03 Oct 1997 - 09:09:33 MET DST


In pl.comp.sys.novell Tomasz Truszczynski <ttruszcz_at_hosp.torun.pl> wrote:
: Witam
: Poszukuje prostego programiku do podmiany zapisow w sekcjach windowsa
: 3.*...

Polecam program lwed. Z wszystkich które przeglądnąłem
wydał mi się najlepszy. Do ściągnięcia z Simtela.
Wyjątki w lwed.txt:

LWed - Windows INI file editor.
Version 2.2.3 of 1996-09-01, Copyright 1996 (C) Laszlo Radanyi

Posiada, zwłaszcza potrzebną w sekcji [386Enh], funkcję --write_blind.

: Aby ominac
: ten problem potrzebny mi jest programik,
: ktory automatycznie, na podstawie np. zmiennej systemowej pn.
: grafika=xxx, powymienia te pare zmiennych w sekcjach system.ini na
: stosowne do komputera.
: Przyznam od razu ze brutalne rozwiazanie (niedosc elastyczne i nieladne)
: mam: korzystajac z programiku, ktory podmienia ciagi liter, uzywanego
: wielokrotnie w wiekszym jakims batchu zamienialbym np.
: "DRIVER=Trident" na ";G1_ER=Trident" (zaczyna sie od srednika wiec ten
: driver juz nieaktualny, mam tez szanse na uzywanie kilku roznych typow
: kart bo znakuje sobie to ciagiem G?) i odwrotnie aby uaktywnic np.
: "DRIVER=S3VGA"

Stosuję trochę inną technikę. Każdy komputer posiada nazwę
zdefiniowaną w zmiennej systemowej. Problem załatwia mi
plik konfiguracyjny:

# hosts
pc136=#9gxe64\0832b
pc137=trio805\08256
pc141=trio765\10256
pc142=trio765\08256
pc143=trio805\08256
pc144=trio805\08256
pc145=stdsvga\08256,scan32\scan32
pc152=trio765\08256
pc154=trio765\08256

oraz odpowiedni batch w 4dos odpalający win3.11. Oto jego fragmenty:

(...)
   echos Searching for hardware configuration...
   set TABFILE=%CONFIG\config.tab
   for %LN in (@%TABFILE) (
      if "%_at_trim[%LN]" != "" .and. %_at_index["%_at_trim[%LN]",#] != 1 set %LN
      )
   unset /q LN TABFILE
   echo %_at_if["%[%HOST]" == "", `not found.`, ` found.`]
   if "%[%HOST]" == "(none)" (echo Cannot open windows session on this hardware. %+ quit)
(...)

rem delete system.ini file from local system dir
   call g:\bt\bt\ydel %LOCAL\system.ini

(...)
rem update hardware configuration
   iff "%[%HOST]" != "" then
      echos Updating hardware configuration...
      do I = 0 to %_at_dec[%_at_words[%[%HOST]]]
         set C=%CONFIG\%_at_word[%I,%[%HOST]]
         set C=%_at_path[%C]%_at_name[%C]
         if exist %C.ini lwed -m %LOCAL\system.ini %C.ini
         if exist %C.bat call %C.bat %LOCAL\system.ini
         if exist %C.btm call %C.btm %LOCAL\system.ini
      enddo
      echo ` done.`
      unset /q C I
   endiff
(...)

CONFIG=katalog gdzie znajduje się współdzielona instalacja win.311,
LOCAL=katalog gdzie znajduje się lokalna instalacja użytkownika,
HOST=nazwa komputera (dla przykładu pc137).

Konstrukcja pliku konfiguracyjnego jest prosta:
hostname=configfile[,configfile,...]

configfile może być typu .ini lub .bat (.btm), batch odpalający win
rozpoznaje jego typ i podejmuje odpowiednią akcję:
dla .ini uaktualnia (za pomocą lwed) system.ini w homedir użytkownika,
dla .bat lub .btm uruchamoa go z ewentualnymi parametrami.

Zdaję sobie sprawę, że mój opis jest bardzo skrótowy.
Mechanizm jest w gruncie rzeczy prosty,
ale bardzo skuteczny i elastyczny.
Załatwia mi wszelkie problemy związane ze zmianami
konfiguracji sprzętowej stacji (przekładanie skanerów, zmiana kart
grafiki, monitorów, itp.)
W razie potrzeby służę dalszymi wyjaśnieniami.

-- 
- Grzegorz Krawczyk ------------------------------ krawczyk_at_kme.agh.edu.pl -
- Akademia Gorniczo-Hutnicza ---------------- Katedra Maszyn Elektrycznych -
- 30-059 Krakow, al.Mickiewicza 30 ------- tel.(+48 12) 172822, fax 341096 -
- Administrator Sieci Komputerowej ---- i Sieciowych Systemow Operacyjnych -


To archiwum zostało wygenerowane przez hypermail 2.1.7 : Tue 18 May 2004 - 16:25:54 MET DST