Oprettet søn. d. 08. juni 2008 kl. 15:12:27

azerty
azerty (6.455 point. Point ude: 0)

Command prompt-forskelle i 9x, Me, 2000 og XP

Følgende batchfil kører efter hensigten i Windows 2000 og XP:

======
@echo off

ver | find "5.10.2600" > nul
if %ERRORLEVEL% == 0 goto winxp

ver | find "5.00.2195" > nul
if %ERRORLEVEL% == 0 goto w2k

ver | find "4.90.3000" > nul
if %ERRORLEVEL% == 0 goto winme

ver | find "4.10.1998" > nul
if %ERRORLEVEL% == 0 goto win98

start error.txt
goto end

:winxp
start batch1.bat
goto end

:w2k
start batch2.bat
goto end

:winme
start batch3.bat
goto end

:win98
start batch4.bat
goto end

:end
exit

=========

Windows Me og Windows 98 skøjter bare igennem "ver | find"-kommandoerne øverst i filen og ender med at køre error.txt. De burde være stoppet ved henholdsvis etiketten "winme" og "win98", have eksekveret en batchfil og gået til "end". Men i DOS prompten meldes syntaksfejl:

if == 0 goto winxp
Syntaksfejl

if == 0 goto w2k
Syntaksfejl

if == 0 goto winme
Syntaksfejl

if == 0 goto win98
Syntaksfejl

Understøttes denne "ver | find" slet ikke i Me og 98?

Jeg kunne lave en klassisk "if exist", men det vil vel kræve, at jeg kan finde en eller anden fil, som KUN findes i Me og KUN findes i 98.

Men det er lidt bøvlet. Er der en workaround om problemet?

Skrevet søn. d. 08. juni 2008 kl. 16:02:52| #1

azerty
azerty (6.455 point)
Ups... har måske løst problemet selv:

ver | find "4.90.3000" > nul
if ERRORLEVEL 0 goto winme
if ERRORLEVEL 1 goto 98

:98
ver | find "4.10.1998" > nul
if ERRORLEVEL 0 goto winme
if ERRORLEVEL 1 goto error

:error
start error.txt

Skrevet søn. d. 08. juni 2008 kl. 16:03:32| #2

azerty
azerty (6.455 point)
Jeg hører dog gerne nærmere om gode ideer i denne forbindelse.

Skrevet man. d. 09. juni 2008 kl. 00:38:22| #3

azerty
azerty (6.455 point)
NÆ, DET DUER IKKE


H - J - Æ - L - P

Skrevet man. d. 09. juni 2008 kl. 06:49:02| #4

karise_larry
karise_larry (259.396 point)
www.ballade.dk
Nu har jeg ikke liiiige nogen Wintendo'98 eller ME ved fingrene såååå...

Forslag ->

fra
if %ERRORLEVEL% == 0 goto winxp
til
if "%ERRORLEVEL%" == 0 goto winxp

eller

if "x%ERRORLEVEL%x" == "x0x" goto winxp

-------

Skrevet tor. d. 03. juli 2008 kl. 11:33:00| #5

azerty
azerty (6.455 point)
Undskyld forsinkelsen. Jeg havde glemt spørgsmålet:

Næh, desværre. Det ser ud til, at Windows 98 og Me afviser alt med % som "syntaksfejl".

Skrevet tor. d. 03. juli 2008 kl. 18:52:40| #6

karise_larry
karise_larry (259.396 point)
www.ballade.dk
I en Command Prompt at skrive

SET

og fortæl hvad den siger/skriver ?

Skrevet lør. d. 27. september 2008 kl. 22:49:49| #7

azerty
azerty (6.455 point)
Den skriver de sædvanlige/forventelege stier med %-tegn omkring. Man kan sagtens bruge disse "wildcards" i dos-kommandoerne, men "windows-DOS" melder syntaksfejl på ver | find ligemeget hvordan jeg omskriver den.

Skrevet søn. d. 28. september 2008 kl. 13:04:29| #8

karise_larry
karise_larry (259.396 point)
www.ballade.dk
" syntaksfejl på ver | find "

Beskriv lige lidt mere hvad du gør hvor / i hvilket OS ?

Skrevet søn. d. 12. oktober 2008 kl. 19:14:05| #9

azerty
azerty (6.455 point)
Den skriver simpelthen:

syntaksfejl

...og går videre til næste linje og udfører kommandoen.

Jeg har udtænkt følgende work-around:

--------------------
@echo off

ver | find "5.00.2195" > nul
if %ERRORLEVEL% == 0 goto 2000

if exist %windir%\system32\ntoskrn*.exe goto nt

"nogle 9x-kommandoer"
goto end

:2000
"nogle w2k(nt)-kommandoer"
goto end

:nt
"nogle nt-kommandoer"
goto end

:end
exit
--------------------

1) Hvis OS er Windows 2000 Professional, udføres eksklusive w2k-kommandoer under label :2000

2) Hvis OS er 2003/XP/Vista, udføres eksklusive nt-kommandoer under label :nt, idet disse OS'er alle har en ntoskrn*.exe i %windir%\System32.

3) Hvis OS er 9x/Me, springes de første tre linjer simpelthen over, og programmet går i gang med at udføre "nogle 9x-kommandoer".

Er det helt tosset, karise_larry?

Undskyld responstiden!

Skrevet søn. d. 12. oktober 2008 kl. 19:50:59| #10

karise_larry
karise_larry (259.396 point)
www.ballade.dk
Du _har_ altså "adgang" til nogle WIN95/85 spiller ?

Tanke: Din 'label' 2000 ... prøv med BOGSTAVER istedet ? En label må måske ikke bare være et alá 2000 ?

-------

Skrevet søn. d. 12. oktober 2008 kl. 20:04:47| #11

karise_larry
karise_larry (259.396 point)
www.ballade.dk
Leg lidt med

ver > %TEMP%\check.txt
find /C "XP" %TEMP%\check.txt
if %ERRORLEVEL% == 0 goto XP

Skrevet søn. d. 12. oktober 2008 kl. 23:36:43| #12

azerty
azerty (6.455 point)
Ja, jeg har en gammel svend med win98 - den kan ikke så meget, men den er god at afprøve slige ting på. Den den også trække Me.

Det med bogstaverne... jeg prøver.

Den anden:

ver >

... skal jeg lige forstå. Når jeg gør dét, vil jeg finde tid til at afprøve det.

Tak for den vedholdende interesse!

Skrevet man. d. 13. oktober 2008 kl. 00:06:13| #13

karise_larry
karise_larry (259.396 point)
www.ballade.dk
Fidusen er at reslutatet af "ver" skrives ikke på skærmen men lægges i en (TEMP)fil.
Derefter søges (find) i denne fil efter bestemte ord/tal/bogstaver. Hvis der _ikke_ bliver fundet noget bliver %ERRORLEVEL% til "1" ...
osv osv osv ...

Skrevet tor. d. 30. oktober 2008 kl. 14:20:22| #14

azerty
azerty (6.455 point)
Ohh.... det skal jeg prøve.

Skrevet man. d. 25. maj 2009 kl. 05:57:32| #15

azerty
azerty (6.455 point)
Jeg har lige - i et andet spørgsmål (http://www.eksperten.dk/ (...)) - brokket mig lidt over "løse ender" på Eksperten, hvor spørgeren ikke følger op på sit spørgsmål. Så kom jeg i tanke om, at jeg selv har et gammelt spørgsmål, som jeg ikke har fået afsluttet.

Det prøver jeg nu :-)

Læg et svar, karise_larry, tak.

Skrevet tor. d. 02. september 2010 kl. 19:57:13| #16

azerty
azerty (6.455 point)
Nå, nu har det vist været åbnet (for) længe nok...

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Installere drivere efter formattering

Oprettet den 8. november 2008 kl. 19.15
skalling giver 100 point for svar | Giv et svar »

Media Center Receiver Service fejlreport

Oprettet den 31. august 2008 kl. 11.21
asdfghj giver 60 point for svar | Giv et svar »

Media Center Receiver Service

Oprettet den 20. juli 2008 kl. 16.15
asdfghj giver 30 point for svar | Giv et svar »

Seneste guides

Installer win 7
Den gode bruger


   




Tips & Tricks fra PC World

Teaser billede

Her er fem sjove danske websider du skal kende

Trænger dine lattermuskler til en omgang fitness på dansk? Vi viser vej til fem websider fyldt med humor og vanvittig satire.


Anmeldelser fra PC World

Teaser billede

Test: Denne super-tablet er iPads hårdeste konkurrent

Eee Pad Transformer Prime er frygtindgydende med sin quadcore processor og evne til at trylle sig om til bærbar. Apple bør kigge i bagspejlet, for Asus' tablet-pc kommer buldrende - og gør det...


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Nu kan du snart hente Windows 8

Den nye offentlige betaversion af Windows 8 er klar i denne måned.


Nyheder fra Computerworld

Teaser billede

Måske snart slut med Androids helt store problem

Android-platformen har længe været plaget af et særligt problem. Men måske er problemet nu ved at være elimineret.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger