CDROM betűjelének meghatározása batch fájlból
2005-09-25T16:24:25+02:00
2005-10-15T12:25:06+02:00
2022-07-24T02:07:36+02:00
FrankP
Sziasztok!
A következő problémában kérném segítségeteket:
Boot CD-ről szeretnék könyvtárat másolni RAMDrive-ra batch fájl segítségével. A kérdésem: hogyan lehet beazonosítani a CD-meghajtót?
Ez miért nem működik: %CDROM%
Köszi
Mutasd a teljes hozzászólást!
Sziasztok ! Megint Én.

Na nem hagyott nyugodni a gondolat és a következő megoldás találtatott
(Némi kis programozási ismerettel kel rendelkezni csupán - Pascal -, meg hogy egy kis programozás is legyen már benne ha már egyszer a prog.hu-n vagyunk).

Ime a forrás : Swagról letöltve és kiegészitve

Program cd_char ; Uses dos ; Var ELSO_CDROM : byte; { Gets the first installed CD-ROM drive letter in a system. Part of the Heartware Toolkit v2.00 (HTdisk.PAS) for Turbo Pascal. Author: Jose Almeida. P.O.Box 4185. 1504 Lisboa Codex. Portugal. I can also be reached at RIME network, site ->TIB or #5314. Feel completely free to use this source code in any way you want, and, if you do, please don't forget to mention my name, and, give me and Swag the proper credits. } FUNCTION First_CD_ROM_Drive : byte; { DESCRIPTION: Gets the first installed CD-ROM drive letter in a system. SAMPLE CALL: NB := First_CD_ROM_Drive; RETURNS: 0 : drive A 1 : drive B and so on... } var HTregs : registers; BEGIN { First_CD_ROM_Drive } HTregs.AX := $1500; HTregs.BX := $0000; Intr($2F,HTregs); First_CD_ROM_Drive := HTregs.CL; END; { First_CD_ROM_Drive } Begin ELSO_CDROM:=First_CD_ROM_DRIVE; halt (ELSO_CDROM); End.


Na ebből csinálsz egy frankó kis exe-t(cd_char.exe), rápakolod a floppancsra és itt van hozzá a bat file is :

@echo off set cdrom= cd_char.exe if errorlevel == 0 set cdrom=A: if errorlevel == 1 set cdrom=B: if errorlevel == 2 set cdrom=C: if errorlevel == 3 set cdrom=D: if errorlevel == 4 set cdrom=E: if errorlevel == 5 set cdrom=F: if errorlevel == 6 set cdrom=G: if errorlevel == 7 set cdrom=H: if errorlevel == 8 set cdrom=I: if errorlevel == 9 set cdrom=J: if errorlevel == 10 set cdrom=K: if errorlevel == 11 set cdrom=L: if errorlevel == 12 set cdrom=M: if errorlevel == 13 set cdrom=N: if errorlevel == 14 set cdrom=O: if errorlevel == 15 set cdrom=P: if errorlevel == 16 set cdrom=Q: if errorlevel == 17 set cdrom=R: if errorlevel == 18 set cdrom=S: if errorlevel == 19 set cdrom=T: if errorlevel == 20 set cdrom=U: if errorlevel == 21 set cdrom=V: if errorlevel == 22 set cdrom=X: if errorlevel == 23 set cdrom=Y: if errorlevel == 24 set cdrom=Z: echo A CD betüjele : %cdrom%

Innetől kezdve nyugodtan használhatod a %cdrom% változót. Az utolsó echo parancs természetesen nem kell bele, csak azért van hogy lásd hogyan müködik.


Az egész cucc (EXE, PAS, BAT) letölthető innen :

Cd_char.zip 4261 bytes

A tiétek használjátok.

Sziasztok.
Mutasd a teljes hozzászólást!

  • probald meg ezt:
    cd | copy /s *.* c:\installkonyvtar
    A cd parancs kimenete, ha CD-rol bootolsz, valszeg a CD-re mutat
    Mutasd a teljes hozzászólást!
  • Köszi a hozzászólást. A probléma az, hogy amikor bebootolok a CD-ről, az a floppy-meghajtót emulálja. Tehát az érvényes meghajtó A: lesz, és ezen a meghajtón csak annak a floppynak a tartalma látható, amiből a bootinformációkat kiszedtem. Amit ezen kívül írtam a CD-re, az egy teljesen más meghajtón lesz. Amit írtál az akkor lenne jó, ha tudnék olyan bootCD-t csinálni, ami nem emulál semmit, de ez eddig még nem sikerült. Ha valaki tudna ebben segíteni, az is megoldaná a problémámat, sőt még jobban is tetszene. Köszi.
    Mutasd a teljes hozzászólást!
  • Próbáltál már boot cd készítő programot?
    Mutasd a teljes hozzászólást!
  • Tudnál mondani ilyen bootcd készítő programot?
    Mutasd a teljes hozzászólást!
  • Igen a cd-nek az indító részét floppyként látja. Magát a cd tényleges tartalmát csak úgy tudod elérni, ha a config.sys-ben a 'DEVICE' parancssal betöltöd hozzá a drivert. Utána az MSCDEX-el "véglegesíted", és ez ki is írja a cd(k) betűjelét, de szerintem le is lehet kérdezni.
    Mutasd a teljes hozzászólást!
  • Keres rá az Ultra iso-ra
    Mutasd a teljes hozzászólást!
  • Sziasztok !

    Lehet, hogy kopaszság, de megnéztem az mscdex használatát :

    usage: MSCDEX /E/K/S/V /D:<driver> ... /L:<letter> /M:<buffers>

    A /L:<letter> paraméter szerintetek mire való ?

    Beirod ide neki azt a meghajtó betüjelet, amit CD-ként akarsz használni (PL "Z"), és a továbbiakban "Z:"-tal hivatkozhatsz a CDrom ra. Kalap kabát.

    (A config.sys-ben egy "Lastrdrive=z"-nek lennie kell a megfelelő müködéshez)

    Sziasztok.
    Mutasd a teljes hozzászólást!
  • Ja, így is lehet. Csak akkor előtte ellenőrizd, hogy véletlen nincs-e már pl Z meghajtó (korábban betöltött cd-illesztő, hálózati meghajtó, stb.). Mostmár egy cd-illesztő sys-fájlt kerítesz pl. a Win98 boot lemezéről, és kész.
    Mutasd a teljes hozzászólást!
  • Sziasztok ! Megint Én.

    Na nem hagyott nyugodni a gondolat és a következő megoldás találtatott
    (Némi kis programozási ismerettel kel rendelkezni csupán - Pascal -, meg hogy egy kis programozás is legyen már benne ha már egyszer a prog.hu-n vagyunk).

    Ime a forrás : Swagról letöltve és kiegészitve

    Program cd_char ; Uses dos ; Var ELSO_CDROM : byte; { Gets the first installed CD-ROM drive letter in a system. Part of the Heartware Toolkit v2.00 (HTdisk.PAS) for Turbo Pascal. Author: Jose Almeida. P.O.Box 4185. 1504 Lisboa Codex. Portugal. I can also be reached at RIME network, site ->TIB or #5314. Feel completely free to use this source code in any way you want, and, if you do, please don't forget to mention my name, and, give me and Swag the proper credits. } FUNCTION First_CD_ROM_Drive : byte; { DESCRIPTION: Gets the first installed CD-ROM drive letter in a system. SAMPLE CALL: NB := First_CD_ROM_Drive; RETURNS: 0 : drive A 1 : drive B and so on... } var HTregs : registers; BEGIN { First_CD_ROM_Drive } HTregs.AX := $1500; HTregs.BX := $0000; Intr($2F,HTregs); First_CD_ROM_Drive := HTregs.CL; END; { First_CD_ROM_Drive } Begin ELSO_CDROM:=First_CD_ROM_DRIVE; halt (ELSO_CDROM); End.


    Na ebből csinálsz egy frankó kis exe-t(cd_char.exe), rápakolod a floppancsra és itt van hozzá a bat file is :

    @echo off set cdrom= cd_char.exe if errorlevel == 0 set cdrom=A: if errorlevel == 1 set cdrom=B: if errorlevel == 2 set cdrom=C: if errorlevel == 3 set cdrom=D: if errorlevel == 4 set cdrom=E: if errorlevel == 5 set cdrom=F: if errorlevel == 6 set cdrom=G: if errorlevel == 7 set cdrom=H: if errorlevel == 8 set cdrom=I: if errorlevel == 9 set cdrom=J: if errorlevel == 10 set cdrom=K: if errorlevel == 11 set cdrom=L: if errorlevel == 12 set cdrom=M: if errorlevel == 13 set cdrom=N: if errorlevel == 14 set cdrom=O: if errorlevel == 15 set cdrom=P: if errorlevel == 16 set cdrom=Q: if errorlevel == 17 set cdrom=R: if errorlevel == 18 set cdrom=S: if errorlevel == 19 set cdrom=T: if errorlevel == 20 set cdrom=U: if errorlevel == 21 set cdrom=V: if errorlevel == 22 set cdrom=X: if errorlevel == 23 set cdrom=Y: if errorlevel == 24 set cdrom=Z: echo A CD betüjele : %cdrom%

    Innetől kezdve nyugodtan használhatod a %cdrom% változót. Az utolsó echo parancs természetesen nem kell bele, csak azért van hogy lásd hogyan müködik.


    Az egész cucc (EXE, PAS, BAT) letölthető innen :

    Cd_char.zip 4261 bytes

    A tiétek használjátok.

    Sziasztok.
    Mutasd a teljes hozzászólást!
abcd