Batch utasitas futtatasa command promptban

Batch utasitas futtatasa command promptban
2013-02-28T15:33:49+01:00
2013-03-01T07:27:30+01:00
2022-10-15T22:35:43+02:00
-coolpet-
Sziasztok!

Szeretnek 1 utasitassal megtalalni egy csatolt pendrive meghajto betujelet winPE illetve win2k8 alatt.


For %%I In (A,B,C,D,E,F,G) Do If Exist "%%I:\flash.txt" echo Stick found at drive %%I

Ha ezt a kodot beleteszem egy batch fileba es futtatom, tokeletesen mukodik.
Szeretnem siman command promptnol is futtatni, mivel a batch file a pendriveon van, azt kellene megkeresni.

Lehetseges futtatni, vagy minden meghajtora le kell futtatnom az If Exist c:\flash.txt echo found... utasitast?

P

Szerk:

Kozben rajottem ha %%I helyett csak %I-t irok lefut, de minden sorban kiirja az utasitast.
Kelene egy @echo off is, viszont azt nem fogadja el a sor elejen

5let?
Mutasd a teljes hozzászólást!
Ez működik, de nem tudom miért jó közvetlenül a parancssorba írni?

C:\>echo off & (For %I In (A,B,C,D,E,F,G) Do If Exist "%I:\a.txt" echo Stick found at drive %I) & echo on
Mutasd a teljes hozzászólást!

  • Első ránézésre, az A, B, C variációt egyből kiveheted, azok biztos nem lesznek pendrive-ok.
    A probléma az, hogy nem tudhatod előre, hogy milyen meghajtóhoz assignálódik a pendrive-od, így szerintem csak az marad hátra, hogy minden betűre le kell futtasd, persze a C utániakra, ahogy már írtam.
    Mutasd a teljes hozzászólást!
  • pont ezt csinalom...
    find.bat kimenete:
    C:\Users\xxx>find.bat
    Stick found at drive E

    C:\Users\xxx>

    utasitas kimenete:
    C:\Users\xxx>For %I In (A,B,C,D,E,F,G) Do If Exist "%I:\a.txt" echo Stick f
    ound at drive %I

    C:\Users\xxx>If Exist "A:\a.txt" echo Stick found at drive A

    C:\Users\xxx>If Exist "B:\a.txt" echo Stick found at drive B

    C:\Users\xxx>If Exist "C:\a.txt" echo Stick found at drive C

    C:\Users\xxx>If Exist "D:\a.txt" echo Stick found at drive D

    C:\Users\xxx>If Exist "E:\a.txt" echo Stick found at drive E
    Stick found at drive E

    C:\Users\xxx>If Exist "F:\a.txt" echo Stick found at drive F

    C:\Users\xxx>If Exist "G:\a.txt" echo Stick found at drive G

    C:\Users\xxx>

    azt szeretnem elerni, hogy az output olyan legyen, mintha a batch filet futtatnam(abban van egy @echo off az elejen)

    P
    Mutasd a teljes hozzászólást!
  • törölve
    Mutasd a teljes hozzászólást!
  • Már nem tudtam szerkeszteni :(

    Kozben rajottem ha %%I helyett csak %I-t irok lefut

    Feltétlen írd vissza a %%I-t. Nem fog helyesen működni. Itt a for helpje:
    To use the FOR command in a batch program, specify %%variable instead
    of %variable...


    ---
    A, B, és C-t vedd ki a for listájából. Már mondtam, hogy azok biztos nem lesznek pendrive meghajtók.
    Mutasd a teljes hozzászólást!
  • Ez működik, de nem tudom miért jó közvetlenül a parancssorba írni?

    C:\>echo off & (For %I In (A,B,C,D,E,F,G) Do If Exist "%I:\a.txt" echo Stick found at drive %I) & echo on
    Mutasd a teljes hozzászólást!
  • Ha mindig ugyanazt a pendrive-ot használod, akkor beazonosíthatod a serial number után is. Valahogy így kellene:

    For %%I In (D,E,F,G) Do ( rem If Exist "%%I:\flash.txt" echo Stick found at drive %%I for /F "delims=" %%S in ('VOL %%I: 2^>NUL') do ( echo %%S | find "ide a serialnumber" ) )
    Mutasd a teljes hozzászólást!
  • Tokeletes megoldas, koszonom.

    Mindig mas a pendrive, mindig mas az oprendszer, viszont a pen tartalma reszben ugyanaz.

    Generikus megoldas kellett, hogy megtalaljam a betujelet.

    Sanya: Az hogy az A,B,C szoveg bennevan az azert van, mert dos alatt felcsatolhato ramdrivekent is a futo oprendszer ala es ott A meghajto lesz, WinPE alatt pedig mindig C, mert a WinPe ramdrive-ja X meghajtora rakja magat. Win2K8 alatt pedig install utan lehet D,E,F,G barmelyike.

    Szoval a nem is ekllene csak szepseghiba lenne, mukodest nem befolyasolna.

    Koszi!
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd