Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: DOS ei toimi

Sivun loppuun

Codeprofile [11.01.2007 18:59:40]

#

Dossini ei ole toiminut sen jälkeen, kun tein erään testin komentojonotiedostolla. Kun komentojonotiedostoon laittaa esimerkiksi seuraavan rivin:

chkdsk

...ohjelma tulostaa näytölle peräkkäin tekstin "chkdsk". Sama koskee myös kaikkia muita komentoja. Ohjelma ei myöskään chkdsk:ta suoritettaessa kysele normaalisti mitään, joten siitäkään se ei voi johtua.

Mitä testini aikana oikein tapahtui? Testitiedostoni lähdekoodi oli testin aikana seuraavanlainen:

@echo off
title Automaattinen virheidenkorjaus
echo Tarkistetaan levyä virheistä....
chkdsk > data\tiedot.dat
echo Tarkistus suoritettu loppuun!
if errorlevel 255 echo Tarkistus epäonnistui!
pause

Mikä tuossa tiedostossa (ehkä) vaurioitti järjestelmää??

E.K.Virtanen [11.01.2007 19:01:46]

#

Ei tuon kyllä pitäisi vaurioittaa mitenkään DOSsin toimintaa ellei chkdsk.exe filusi ole ollut jotenkin buginen. (imo)

Codeprofile [11.01.2007 19:23:40]

#

Mutta kyllä se on ennen ainakin toiminut.

HellCome [11.01.2007 21:16:03]

#

Eli pistit chkdsk:n tarkistamaan "data" kansiossa olevan "tiedot.dat" tiedoston? Ja mitäkö siellä tiedot.dat:ssa sitten oikeastaan onkaan? Utelias kun olen, niin kiinnostaa myös se, että mistä chkdsk:si tietää mikä on errorlevel 255?

E.K.Virtanen [11.01.2007 21:30:43]

#

Kyllä tuo laittaa chkdsk.exe:n tulostamaan ruudun sijaan tulokset tuohon tiedot.dat tiedostoon.

Codeprofile [12.01.2007 15:59:03]

#

Ja tuo 'if errorlevel 255' on se, että tarkistus epäonnistuu. Jos errorlevel on 0, vai oliko se nyt 1, niin tarkistus onnistui. Niin olen ainakin saanut tietooni.

EDIT: Tuo on kerran toiminut, mutta sen jälkeen ei enää kertaakaan. Outoo.

E.K.Virtanen [14.01.2007 00:57:07]

#

Jos errorlevel = 0 niin homma bueno. Eli 0 = ei virheitä ;)
Koetin tuota juttuasi vanhalla dos läppärillä ja lopputulos oli juuri mitä arvelinkin eli ei tuo ohjelma tuota ongelmia. Jos tuon takia on jotain mennyt rikki tai seonnut niin vika on sitten chkdsk.exe filussa. Tosin en oikein tuohonkaan ratkaisuun usko.

Vieläkö sinulla on tämä ongelma?

Codeprofile [14.01.2007 09:53:58]

#

Jep. Ja se koskee lähes kaikkia DOS-komentoja.

Huh. Eli vika ei siis ole tuossa tiedostossa. Sitten jotain muuta on mennyt pieleen.

EDIT:
No nyt toimii yhdellä tavalla:

@echo off
title Automaattinen virheidenkorjaus
echo Tarkistetaan levyä virheistä....
%SystemRoot%\system32\chkdsk.exe > data\tiedot.dat
echo Tarkistus suoritettu loppuun!
if errorlevel 255 echo Tarkistus epäonnistui!
pause

Mitä ihmettä. Tuolla koodilla siis se toimii, mutta ei pelkällä chkdsk-komennolla.

Blaze [14.01.2007 11:39:57]

#

Eli sulla on PATH-ympäristömuuttuja rikki. Kliksuttele Control Panel > System > Joku välilehti, josta löytyy Environment variables -nappi > se nappi > Ota listasta PATH ja lisää siihen ainakin C:\Windows ja C:\Windows\System32

Codeprofile [14.01.2007 11:44:52]

#

Siellä on jo ne. Muuttujan arvo on tämä:

%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem

EDIT: En ees muuttanut mitään, mutta nyt DOS silti toimii. Nyt kun laittaa chkdsk, niin chkdsk.exe käynnistyy!


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta