08. juni 2008 - 15:12Der er
15 kommentarer og 1 løsning
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?
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
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.
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 ...
Jeg har lige - i et andet spørgsmål (http://www.eksperten.dk/spm/875300) - 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.
Nå, nu har det vist været åbnet (for) længe nok...
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.