*
 
AfterDawn.com Keskustelualueet

cmd.exe ei löydä \system32\ sisäisiä ohjelmia

Tässä viestiketjussa on 5 viestiä.

#1

"Komentoa X ei tunnistettu sisäiseksi tai ulkoiseksi komennoksi, suoritettavaksi ohjelmaksi tai komentojonotiedostoksi."


Kone alkoi tuota valittamaan pari päivää sitten, kun koitin käyttää pingiä, ja ongelmaa selvittäessä huomasin, ettei cmd.exe löydä mitään muitakaan system32-ohjelmia. Ohjelmat toimii, jos cmd:ssä menee C:\Windows\system32.
PATH muuttuja on tyyppiä REG_EXPAND_SZ ja echo %PATH% tulostaa
"C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\WindowsSystem32\WindowsPowerShell\v1.0\;"


Millähän sais fixattua tän mystisen ongelman, ettei aina tarvitsisi siirtyä system32-kansioon? Käyttiksenä Win 7 HP

Edit: Vika selvisi, lainausmerkit piti poistaa arvon ympäriltä
Viestiä on muokattu sen lähettämisen jälkeen. Viestiä on muokattu viimeksi 31.7.2011 @ 21:52
▼▼ Tässä viestiketjussa on 4 vastausta - vastaukset ovat mainoksen alapuolella ▼▼
AfterDawn Ilmoitus
#2
Lainaus, alkuperäisen viestin kirjoitti jkv209:
Edit: Vika selvisi, lainausmerkit piti poistaa arvon ympäriltä
Pingihän ei taida oletuksena edes kuulua W7 system32-tiedostoihin, mutta tämä taisi olla jo tiedossa? Saa lisättyä ohjelmat ja toiminnot kautta -> muuta windowsin toimintoja. Sama juttu esim. telnetin kanssa.
#3
Lainaus, alkuperäisen viestin kirjoitti xbkrypt0n:
Pingihän ei taida oletuksena edes kuulua W7 system32-tiedostoihin

Näyttäisi kuuluvan, kun juuri asennetussa W7:ssä on Ping olemassa ilman mitään toimia.

#4
Ympäristömuuttujat sekaisin. Ei löydä kansiota C:\Windows\system32.
Korjausta en osaa sanoa, jos joku "näytä muuttujat" sen kuitenkin näyttää, mutta ei osaa hakea..
W7 on mulle tuntematon.
Jos sen "dos" on yhtään alkuperäistä, niin *.bat tiedosto, jossa lukee 'cd C:\Windows\system32.'.
Niin kirjoittamalla * ja enter, niin olet cmd:llä (komentokehoite) tossa kansiossa.
Ja kun ykskään dos komento tai muu ei ole yksikirjaiminen, niin vapaasti valiten * tilalle saat haluamasi kirjaimen. tai oman "komennon", lol, ftw, jne. Paljonko haluat kirjoitella, tai kuin mojovan komeennon nimen haluat luoda.
Kualiluatikko, supikoirankarvareuhka,...

p.s. *.bat tiedosto pitää sijoittaa semmoiseen paikkaan josta cmd.exe osaa lueskella.
Viestiä on muokattu sen lähettämisen jälkeen. Viestiä on muokattu viimeksi 2.8.2011 @ 18:41

Osta paskaa, saat 2kk kaupan päälle.
- Zz Topelius -
#5
Lainaus, alkuperäisen viestin kirjoitti BforeDusk:
Ympäristömuuttujat sekaisin. Ei löydä kansiota C:\Windows\system32.
Korjausta en osaa sanoa, jos joku "näytä muuttujat" sen kuitenkin näyttää, mutta ei osaa hakea..
Tuohan oli jo ensimmäisessä viestissä ratkaistu :)
W7 on mulle tuntematon.

set-komennolla näkee voimassaolevat ympäristömuuttujat ja niiden arvot. set-komennolla voi myös muuttaa ympäristömuuttujia tai luoda niitä.
set-komennon ohje:

Näyttää, asettaa tai poistaa CMD.EXE:n ympäristömuuttujia.


SET [muuttuja=[merkkijono]]

muuttuja Määrittää ympäristömuuttujan nimen.
merkkijono Määrittää muuttujan arvoksi annettavan sarjan merkkejä.

SET ilman parametreja näyttää nykyiset ympäristömuuttujat.

Jos komentolaajennukset ovat käytössä, SET-komento muuttuu seuraavasti:

Jos SET-komennolle annetaan parametrina muuttujan nimi ilman yhtäsuuruus-
merkkiä tai arvoa, se näyttää kaikkien muuttujien arvon, joiden nimi alkaa
SET-komennolle annetun parametrin merkeillä. Esimerkiksi:

SET P

näyttää kaikki ympäristömuuttujat, joiden nimi alkaa kirjaimella "P".

SET-komento asettaa ERRORLEVEL:n arvoon 1 jos muuttujan arvoa ei löydy
nykyisestä ympäristöstä.

SET-komento ei salli yhtäsuuruusmerkin (=) käyttöä muuttujassa.

SET-komentoon on lisätty kaksi uutta valitsinta:

SET /A lauseke
SET /P muuttuja=[promptString]

/A-valitsin edellyttää, että merkkijono yhtäsuuruusmerkin oikealla
puolella on laskettava numeerinen lauseke. Lausekkeen laskenta on melko
yksinkertaista. Se tukee seuraavia operaatioita esitettynä alenevassa
laskentajärjestyksessä:

() - ryhmittely
! ~ - - unaarioperaattorit
* / % - aritmeettiset operaattorit
+ - - aritmeettiset operaattorit
<< >> - looginen siirto
& - bittitason JA
^ - bittitason poissulkeva TAI
| - bittitason TAI
= *= /= %= += -= - sijoitus
&= ^= |= <<= >>=
, - lauseke-erotin

Jos käytetään loogisia tai modulusoperaattoreita, lauseke tulee sijoittaa
lainausmerkkeihin. Lausekkeessa olevia ei-numeerisia merkkijonoja käsitellään
ympäristömuuttujina, joiden arvot muunnetaan numeroiksi ennen käyttöä.
Jos ympäristömuuttujan nimi on annettu mutta ei määritetty nykyisessä
ympäristössä, arvoa nolla käytetään. Tämä mahdollistaa aritmeettiset
operaatiot ympäristömuuttujien arvoilla tarvitsematta käyttää %-merkkejä
niiden arvojen hakemiseen. Jos SET /A suoritetaan komentokehotteesta
komentojonotiedoston ulkopuolella, se näyttää lausekkeen lopullisen
arvon. Sijoitusoperaattori edellyttää ympäristömuuttujan nimeä
sijoitusoperaattorin vasemmalle puolelle. Numeeriset arvot ovat oletuksena
desimaalilukuja, ellei niitä edellä 0x (heksadesimaali) tai 0 (oktaali).
Täten 0x12 on sama kuin 18, joka on sama kuin 022. Huomaa, että
oktaalinotaatio voi aiheuttaa sekaannusta: 08 ja 09 eivät ole kelvollisia
lukuja, koska 8 ja 9 eivät ole kelvollisia oktaalinumeroita.

/P-valitsimen avulla voit määrittää muuttujan, jonka käyttäjä kirjoittaa
komentoriville. Käyttäjälle näytetään kehotemerkkijono ennen muuttujan
kirjoittamista. Kehotemerkkijono voi olla tyhjä.

Ympäristömuuttujan korvaamista on parannettu seuraavasti:

%PATH:mjono1=mjono2%

laajentaa PATH-ympäristömuuttujan korvaten jokaisen mjono1-esiintymän
mjono2-esiintymän laajennetulla tuloksella. Mjono2 voi olla tyhjä,
jolloin se poistaa kaikki mjono1-esiintymät laajennetusta tulostuksesta.
Mjono1 voi alkaa tähtimerkillä, jolloin se vastaa kaikkea laajennetun
tulostuksen alusta lähtien ensimmäiseen mjono1:n loppuosan esiintymään
saakka.

Laajennukselle voidaan määrittää myös alimerkkijonoja.

%PATH:~10,5%

laajentaa PATH-ympäristömuuttujan, mutta käyttää sitten vain 5 merkkiä,
jotka alkavat laajennetun tuloksen 11. merkistä (osoite 10). Jos pituutta
ei määritetä, niin oletusarvo on muuttujan arvon jäljellä oleva osa. Jos
jompikumpi luvuista (osoite tai pituus) on negatiivinen, käytettävä luku
on ympäristömuuttujan pituus lisättynä määritetyn osoitteen tai pituuden
arvolla.

%PATH:~-10%

purkaa PATH-muuttujan viimeiset 10 merkkiä.

%PATH:~0,-2%

purkaa kaikki paitsi kaksi viimeistä PATH-muuttujan merkkiä.

Viivästetty ympäristömuuttujalaajennus on lisätty. Tämä on
oletusarvoisesti aina poissa käytöstä, mutta voit ottaa sen
käyttöön tai poistaa sen käytöstä Cmd.exe-ohjelman /V-valitsimen
avulla. Katso CMD /?

Viivästetyn ympäristömuuttujalaajennuksen avulla voidaan kiertää
nykyisen laajennuksen rajoitukset, jotka aiheutuvat siitä, että
laajennus tapahtuu tekstiriviä luettaessa eikä riviä suoritettaessa.
Seuraava esimerkki esittelee ongelman:

set VAR=ennen
if "%VAR%" == "ennen" (
set VAR=jälkeen;
if "%VAR%" == "jälkeen" @echo Jos näet tämän, se toimii
)

ei tuo näyttöön koskaan sanomaa, koska BOTH IF -käskyn %VAR%
korvataan, kun ensimmäinen IF-käsky luetaan, koska se sisältää
loogisesti IF-käskyn perusosan, joka on yhdistelmälause. Joten
IF-käsky yhdistelmälauseen sisällä vertailee todellisuudessa
ennen- ja jälkeen-merkkijonoja, jotka eivät koskaan vastaa
toisiaan. Samoin seuraavakaan esimerkki ei toimi odotetulla
tavalla:

set LIST=
for %i in (*) do set LIST=%LIST% %i
echo %LIST%

Esimerkki ei muodosta tiedostojen luetteloa nykyiseen kansioon,
vaan se määrittää LIST-muuttujan viimeiseen löydettyyn tiedostoon.
Tämä johtuu taas siitä, että %LIST% laajennetaan vain kerran, kun
FOR-käsky luetaan, jolloin LIST-muuttuja on tyhjä.
Joten todellinen suoritettava FOR-silmukka on:

for %i in (*) do set LIST= %i

, joka vain määrittää LIST-muuttujan viimeiselle löydetylle tiedostolle.

Viivästetyn ympäristömuuttujalaajennuksen avulla voit käyttää eri
merkkiä (huutomerkki) ympäristömuuttujien laajentamiseen suorituksen
aikana. Jos viivästetty ympäristömuuttujalaajennus on käytössä, yllä
oleva voidaan kirjoittaa seuraavasti:

set VAR=ennen
if "%VAR%" == "ennen" (
set VAR=jälkeen
if "!VAR!" == "jälkeen" @echo Jos näet tämän, se toimii oikein
)

set LIST=
for %i in (*) do set LIST=!LIST! %i
echo %LIST%

Jos komentolaajennukset ovat käytössä, tällöin käytössä on useita dynaamisia
ympäristömuuttujia, jotka voidaan laajentaa mutta jotka eivät näy SET-
komennon näyttämässä muuttujien luettelossa. Nämä muuttuja-arvot lasketaan
dynaamisesti joka kerta, kun muuttuja laajennetaan. Jos käyttäjä määrittää
täsmällisesti muuttujan käyttäen jotain näistä nimistä, määritys korvaa alla
kuvatut dynaamiset määritykset:

%CD% - Laajentaa nykyisen hakemistomerkkijonon.

%DATE% - Laajentaa nykyisen päivämäärän käyttämällä DATE-komennon muotoa.

%TIME% - Laajentaa nykyisen ajan käyttämällä TIME-komennon muotoa.

%RANDOM% - Laajentaa satunnaisen desimaaliluvun 0 - 32767.

%ERRORLEVEL% - Laajentaa nykyisen ERRORLEVEL-arvon.

%CMDEXTVERSION% - Laajentaa nykyisen komentotulkin laajennusten
versionumeron.

%CMDCMDLINE% - Laajentaa alkuperäisen komentorivin, joka käynnisti
komentotulkin.

%HIGHESTNUMANODENUMBER% - Laajentaa tämän tietokoneen suurimman NUMA-solmun
numeron.

Tämä viestiketju on suljettu, johtuen siitä, että ketjun uusimmasta viestistä on kulunut yli 180 vuorokautta. Käytännössä tämä tarkoittaa sitä, että et voi vastata tähän viestiketjuun lainkaan.

Mikäli sinulla on lisättävää tai kysyttävää tähän samaan aiheeseen liittyen, ole hyvä ja aloita aiheesta uusi viestiketju tämän sivun kautta.

Tilaa AfterDawnin viikoittainen uutiskirje.