1. Tämä sivusto käyttää keksejä (cookie). Jatkamalla sivuston käyttämistä hyväksyt keksien käyttämisen. Lue lisää.

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

Viestiketju Windows -ongelmat -osiossa. Ketjun avasi jkv209 31.07.2011.

  1. jkv209

    jkv209 Member

    Liittynyt:
    17.10.2009
    Viestejä:
    12
    Kiitokset:
    0
    Pisteet:
    11
    Koodi:
    "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ä
     
    Viimeksi muokattu: 31.07.2011
  2.  
  3. xbkrypt0n

    xbkrypt0n Active member

    Liittynyt:
    16.06.2010
    Viestejä:
    3,154
    Kiitokset:
    120
    Pisteet:
    73
    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.
     
  4. yamaneko

    yamaneko Senior member

    Liittynyt:
    22.09.2005
    Viestejä:
    5,093
    Kiitokset:
    1
    Pisteet:
    118
    Näyttäisi kuuluvan, kun juuri asennetussa W7:ssä on Ping olemassa ilman mitään toimia.
     
  5. BforeDusk

    BforeDusk Senior member

    Liittynyt:
    15.09.2006
    Viestejä:
    6,570
    Kiitokset:
    7
    Pisteet:
    118
    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.
     
    Viimeksi muokattu: 02.08.2011
  6. xbkrypt0n

    xbkrypt0n Active member

    Liittynyt:
    16.06.2010
    Viestejä:
    3,154
    Kiitokset:
    120
    Pisteet:
    73
    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:
    Koodi:
    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.
    
     

Jaa tämä sivu