title image


Smiley Re: Suche Synonym für´s CD-ROM
Shalom!



Ein alter Pferdefuß für Batch-Programmierung.

Es gibt eine Lösung mit einer COM-Datei,

welche als Ausgabe den ersten CD-ROM-Laufwerksbuchstaben ausgibt.

Allerdings ist die Ausgabe ein ganzer Satz (z.B. "CD-ROM drive is D:"), so daß die Ausgabe nicht direkt als

Variable verwendet werden kann. Mit ein bisschen Spielerei und dem FIND-Befehl könnte man so vielleicht...



Also man läßt eine Batch (nennen wir sie mal test.bat) die find-cd.com aufrufen und die Ausgabe in eine

temporäre Datei schreiben.



----------------------------------

find-cd.com >ausgabe.txt

----------------------------------



In dieser Datei steht dann z.B.:



CD-ROM drive is J:





Jetzt kann man mit FIND aber glaube ich nur nach kompletten Zeilen... also man kann soweit ich weiß nicht

sagen "Welcher Buchstabe steht an Position 17 der ersten Zeile?" (hier "J")

Aber man könnte jetzt systematisch abfragen, ob eine bestimmte Zeichenkette vorkommt.

Man macht also in der test.bat weiter:



---------------------------------

find /I "a:" ausgabe.txt

---------------------------------



Wenn die Zeichenkette "a:" vorkommt (sollte es nicht, denn A: ist selten ein CD-ROM-Laufwerk...)

dann gibt FIND den ERRORLEVEL 0 (kein Fehler) aus.

Kommt "a:" nicht in der temporären Datei vor (weil das CD-ROM beispielsweise J: ist),

wird ERRORLEVEL 1 ausgegeben.



Tja, und die kann man jetzt systematisch nacheinander abfragen (man fängt immer mit dem

größtmöglichen ERRORLEVEL an.



Hier jetzt mal die komplette Batch:







----------------SCHNIPP---------------------------







:: ------------------------------------------------------------------

:: WRITE_CD-LETTER_2_VARIABLE

:: Schreibt den ersten CD-Laufwerksbuchstaben

:: unter Verwendung von FIND-CD.COM

:: in die Variable %CDROM%

:: ---

:: by Tilo2300

:: ------------------------------------------------------------------



@echo off



find-cd.com >ausgabe.txt



:TestForA

find /I "a:" ausgabe.txt >nul

if errorlevel 1 goto TestForB

if errorlevel 0 goto Awars

goto TestForB



:TestForB

find /I "b:" ausgabe.txt >nul

if errorlevel 1 goto TestForC

if errorlevel 0 goto Bwars

goto TestForC



:TestForC

find /I "c:" ausgabe.txt >nul

if errorlevel 1 goto TestForD

if errorlevel 0 goto Cwars

goto TestForD



:TestForD

find /I "d:" ausgabe.txt >nul

if errorlevel 1 goto TestForE

if errorlevel 0 goto Dwars

goto TestForE



:TestForE

find /I "e:" ausgabe.txt >nul

if errorlevel 1 goto TestForF

if errorlevel 0 goto Ewars

goto TestForF



:TestForF

find /I "f:" ausgabe.txt >nul

if errorlevel 1 goto TestForG

if errorlevel 0 goto Fwars

goto TestForG



:TestForG

find /I "g:" ausgabe.txt >nul

if errorlevel 1 goto TestForH

if errorlevel 0 goto Gwars

goto TestForH



:TestForH

find /I "h:" ausgabe.txt >nul

if errorlevel 1 goto TestForI

if errorlevel 0 goto Hwars

goto TestForI



:TestForI

find /I "i:" ausgabe.txt >nul

if errorlevel 1 goto TestForJ

if errorlevel 0 goto Iwars

goto TestForJ



:TestForJ

find /I "j:" ausgabe.txt >nul

if errorlevel 1 goto FEHLER

if errorlevel 0 goto Jwars

goto ende



:Awars

cls

echo.

echo Hab ihn!

set cdrom=A:

goto ende



:Bwars

cls

echo.

echo Hab ihn!

set cdrom=B:

goto ende



:Cwars

cls

echo.

echo Hab ihn!

set cdrom=C:

goto ende



:Dwars

cls

echo.

echo Hab ihn!

set cdrom=D:

goto ende



:Ewars

cls

echo.

echo Hab ihn!

set cdrom=E:

goto ende



:Fwars

cls

echo.

echo Hab ihn!

set cdrom=F:

goto ende



:Gwars

cls

echo.

echo Hab ihn!

set cdrom=G:

goto ende



:Hwars

cls

echo.

echo Hab ihn!

set cdrom=H:

goto ende



:Iwars

cls

echo.

echo Hab ihn!

set cdrom=I:

goto ende



:Jwars

cls

echo.

echo Hab ihn!

set cdrom=J:

goto ende



:FEHLER

cls

echo.

echo Kein CD-ROM gefunden!

goto ganzende



:ende

del ausgabe.txt

echo.

echo CD-Laufwerk ist %cdrom%



:ganzende

echo.

echo.

pause

echo.

echo.





----------------SCHNAPP---------------------------





Du kannst/solltest so natürlich alle bis Z: abfragen.

Das sieht jetzt sehr umständlich aus, vielleicht gibt es auch einen eleganteren Weg...

Toll wäre natürlich ein Programm, was die Variable gleich mit dem richtigen Buchstaben bestückt,

aber leider kenn ich sowas nicht...










geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: