Gå til innhold

DOS script. Trenger hjelp til forståelse [LØST]


Anbefalte innlegg

Hei! Jeg har her et prosjekt her jeg trenger litt hjelp til.

Jeg prøver på en unattended installasjon av Windows og har lest guidene på ITPro.no

 

http://itpro.no/art/1150.html

 

MEN problemet er når jeg skal velge hvilket OS som skal installeres.

 

@echo off

:: Sjekker om repartisjonering er kjørt for Unattended installasjon (boot nr.2)

if .%GDISK%.==.DONE. goto FORMAT_DONE

 

:: ******************************************

:: Kopier image fra server eller kjør unattended installasjon

:: ******************************************

:START

z:\tools\Status INSTALLASJON AV OPERATIVSYSTEM

echo ÕÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͸

echo ³ 1: Windows XP Professional - Unattended installasjon ³

echo ³ 2: Windows 2000 Professional - Unattended installasjon ³

:: echo ³ 2: Image - Windows 2000 Professional, SysPrep image med -PnP ³

:: echo ³ D: Dump image - Dump image av denne klargjorte maskinen til Z:Images ³

echo ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

echo.

z:\tools\choice /C:12D /N "Velg installasjon........: "

 

:: ******************************************

:: IMAGE er det samme som Z:Images"image".gho

if errorlevel 1 set IMAGE=N

if errorlevel 1 set OS=WXPPRO

:: if errorlevel 2 set IMAGE=N

:: if errorlevel 2 set OS=W2KPRO

:: if errorlevel 3 set IMAGE=CDPEN

:: if errorlevel 3 set IMAGE=CREATE

 

:: ******************************************

:: Går til valgt avsnitt

if "%IMAGE%"=="CREATE" GOTO CREATE_IMAGE

if "%IMAGE%"=="N" GOTO UNATTEND

 

rem Hent ut laptop og compaq variabler for image

GOTO LAP

 

:: DETTE ER KUN FOR IMAGE UTRULLING. ER IKKE 100% FUNGERENDE!

:: ******************************************

:: Starter GHOST image nedlasting til klienten fra Z:Images

:: ******************************************

:DOWNLOAD

set TYPE=NETT

echo.

echo TA UT DISKETTEN!

echo.

 

XSET /UPPER /PROMPT "Maskinnavn...............: " COMPUTERNAME

 

z:\tools\choice /c:123 "Klientrolle..............: 1=NettverksPC, 2=Hjemmekontor, 3=Nytt image"

if errorlevel == 2 set TYPE=HJEM

if errorlevel == 3 set TYPE=NYTT

if .%TYPE%.==.NETT. goto ALLE

 

set METODE=NYINSTALL

z:\tools\choice /c:12 "Installasjon.............: 1=Ny installasjon, 2=Reinstaller stasjon C: "

if errorlevel == 2 set METODE=REINSTALL

if .%METODE%.==.REINSTALL. goto LOAD

 

:ALLE

gdisk 1 /DEL /ALL /Y

:: Ghost bootpartisjon

gdisk 1 /CRE /PRI /sz:14 /FOR /Q /Y /V:GHOSTBOOT

:: Filen BP%CONFIG%.gho MÅ eksistere. Hvis ikke må en lages for nettverkskortet.

if .%TYPE%.==.HJEM. set CONFIG=HJEM

if not exist Z:ImagesBP%CONFIG%.GHO goto BPMISSING

z:\tools\GHOST -clone,mode=pload,SRC=Z:ImagesBP%CONFIG%.GHO:1,dst=1:1 -sure -fx

:BPMISSING

gdisk 1 /hide /p:1

:: For HJEM partisjoneres Stasjon C: og D:, ellers kun en stasjon C:

if not .%TYPE%.==.HJEM. gdisk 1 /CRE /PRI /FOR /Q /Y /V:System

if .%TYPE%.==.HJEM. gdisk 1 /CRE /PRI /sz:7168 /FOR /Q /Y /V:System

if .%TYPE%.==.HJEM. gdisk 1 /CRE /EXT /Y

if .%TYPE%.==.HJEM. gdisk 1 /CRE /LOG /FOR /Q /Y /V:Data

 

:LOAD

:: Denne linjen oppretter en midlertidig scriptfil for imagenedlasting

:: Det benyttes ett sentralt punkt for denne filen da CSERVER er ukjent ved første imageboot.

:: Må slette variabelen COMPUTERNAME for å unngå at variablen blir byttet ut i SetupEnv.inf

set CNAME=%COMPUTERNAME%

set COMPUTERNAME=

z:\tools\inityme z:\Scripts\SetupEnv.inf y:temp%cname%.inf

 

REM Må laste ned Ghost BootPartition først til partisjon 1:1. Så image til 1:2

z:\tools\GHOST -clone,mode=Pload,SRC=Z:Images%IMAGE%.GHO:1,dst=1:2 -sure -fx -rb

 

 

:: ******************************************

:: Kjører Ghost for å dumpe image av denne maskinen til Z:Images

:: ******************************************

:CREATE_IMAGE

Z:

CD IMAGES

TOOLSGHOST -NTIL

goto END

 

 

:: ******************************************

:: Unattended installasjon. Benytter ikke Image

:: ******************************************

:UNATTEND

 

XSET /UPPER /PROMPT "Maskinnavn...............: " COMPUTERNAME

 

:: set FILESYS=LeaveAlone

:: z:\tools\choice /c:12 /t:2,20 "Filsystem................: 1=FAT32, 2=NTFS "

:: if errorlevel == 2 set FILESYS=ConvertNTFS

set FILESYS=ConvertNTFS

 

:: ******************************************

:: Setter RESolution= til 640X480,800X600 eller 1024X768

:RES

:: set RES=640

:: z:\tools\choice /c:123 /t:3,20 "Skjermopplosning.........: 1=640x480, 2=800x600, 3=1024x768 "

:: if errorlevel == 2 set RES=800

:: if errorlevel == 3 set RES=1024

set RES=1024

 

:: ******************************************

:: Variablen benyttes til installasjonsvariasjoner for laptops

:LAP

SET LAPTOP=Y

if .%OS%.==.WINNT. SET LAPTOP=N

if not .%OS%.==.WINNT. z:\tools\CHOICE /C:YN "Er dette en laptop.......: "

if not .%OS%.==.WINNT. IF ERRORLEVEL == 2 SET LAPTOP=N

 

:: ******************************************

:: Skal opp igjen i batfilen til "last ned image" hvis dette er valgt.

if not "%IMAGE%"=="N" goto DOWNLOAD

 

:: ******************************************

:: Neste tre linjene er for unattended. Linjen ovenfor er for image.

set TYPE=NETT

if .%OS%.==.WINNT. goto FORMAT

:: Hvis laptop skal det alltid være nettverksklient. Laptop brukes ikke som hjemmekontor.

if .%LAPTOP%.==.Y. goto FORMAT

z:\tools\choice /c:12 "Klientrolle..............: 1=Nettverksklient, 2=Hjemmekontor "

if errorlevel == 2 set TYPE=HJEM

 

:: ******************************************

:: Repartisjoner eller formater disk

:FORMAT

if .%GDISK%.==.DONE. goto FORMAT_DONE

call z:\Scripts\FormatHD.bat

:FORMAT_DONE

 

z:\tools\Status INSTALLASJONSPARAMETRE

echo -------------------------------

echo Maskinnavn....: %COMPUTERNAME%

if .%OS%.==.W2KPRO. echo Klientserver.*: %CSERVER%

echo Programserver*: %PSERVER%

:: echo E-postserver.*: %ESERVER%

echo Domene.......*: %DOMAIN%

echo Type/rolle....: %TYPE%

if .%OS%.==.WXPPRO. echo OS............: Windows XP Professional

if .%OS%.==.W2KPRO. echo OS............: Windows 2000 Professional

if .%FILESYS%.==.LeaveAlone. echo Filsystem.....: FAT

if .%FILESYS%.==.ConvertNTFS. echo Filsystem.....: NTFS

if .%COUNTRY%.==.US. echo OS Language..*: English

if .%COUNTRY%.==.NO. echo OS Language..*: Norsk

echo Fullt navn...*: %FULLNAME%

echo Organisasjon.*: %ORGNAME%

if .%OS%.==.W2KPRO. echo Opplosning....: %RES%

echo Laptop........: %LAPTOP%

echo -------------------------------

echo * Rediger A:Set.bat for endring av verdier merket med stjerne

echo.

z:\tools\choice /c:YN "TA UT DISKETTEN! Svar Y hvis informasjonen over er korrekt "

if errorlevel == 2 goto REPEAT

goto CHK_OS

 

 

:: ******************************************

:: Spør på nytt etter variabler

:REPEAT

set GDISK=DONE

set COMPUTERNAME=

goto START

 

:: ******************************************

:: Gå til valgt operativsystem

:: ******************************************

:CHK_OS

goto %OS%

 

:: ******************************************

:: Spesifikt for Windows 2000 Professional

:W2KPRO

z:\tools\inityme z:\Scripts\unW2kPro.txt c:\Unattend.txt

:: Må slette variabelen COMPUTERNAME for å unngå at variablen blir byttet ut i SetupEnv.inf

set COMPUTERNAME=

z:\tools\inityme z:\Scripts\SetupEnv.inf c:\SetupEnv.inf

\W2KPRO\%COUNTRY%\winnt /u:c:\Unattend.txt /s:z:\W2KPRO\%COUNTRY% /t:c:

goto END

 

 

:: ******************************************

:: Spesifikt for Windows XP Professional

:WXPPRO

z:\tools\inityme z:\Scripts\UnWXPPRO.txt c:\UnWXPPRO.txt

:: Må slette variabelen COMPUTERNAME for å unngå at variablen blir byttet ut i SetupEnv.inf

set COMPUTERNAME=

z:\tools\inityme z:\Scripts\SetupEnv.inf c:\SetupEnv.inf

z:\WXPPRO\i386\winnt /s:z:\WXPPRO /u:c:\UnWXPPRO.txt /t:c:

goto END

 

:END

 

Der det står "echo ³ 2: Windows 2000 Professional - Unattended installasjon ³" lå det egentlig et ":" tegn foran som betyr at det valget er REMet vekk. Men når jeg velger det og oppsummeringen kommer så står det fortsatt Windows XP!

 

Og det jeg trenger hjelp til er å forstå hvor i scriptet det står hva som skal kjøres.

Noen som er flinke på dette?

Endret av raziel014
Lenke til kommentar
Videoannonse
Annonse
har dette noe med programmering å gjøre ??

5559964[/snapback]

 

Ja, DOS. Men jeg tror jeg får det til. Jeg har ikke særlig peiling på DOS programmering, men jeg forstod ikke at DOS fungerer på en litt annen måte enn nyere programmeringsspråk. For at det andre valget skal fungere, må:

 

:: if errorlevel 2 set IMAGE=N

:: if errorlevel 2 set OS=W2KPRO

 

bli til:

 

if errorlevel 2 set IMAGE=N

if errorlevel 2 set OS=W2KPRO

 

Ser ikke ut til at det var verre!

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...