geplagter
Goto Top

Batch - Überprüfen, ob eine Diskette eingelegt ist.

Der Titel sagt eigentlich alles.
Ich hatte zuvor versucht, eine dummy-Datei auf die Diskette zu schreiben und dann zu prüfen ob sie funktioniert,
aber falls keine Diskette eingelegt ist, gibt Windows so eine nervige laute Warnung aus und das ist nicht sehr schön.
Ich hoffe einer von euch weiß eine besser Lösung.

Content-Key: 53163

Url: https://administrator.de/contentid/53163

Printed on: April 24, 2024 at 09:04 o'clock

Member: Dani
Dani Mar 04, 2007 at 20:16:52 (UTC)
Goto Top
G' Abend,
also der Titel hat mit dem Text irgendwie nichts zu tun oder aber ich schlaf schon.
Willst du nun etwas auf die Disk schreiben oder nur checken, ob eine drinne ist?!

Ob eine Disk drinne ist, kann per Batch mit einer Zeile gelöst werden:
if exist "A:\NUL"  
Ich weiß grad bloß nicht, ob es "NUL" oder "NULL" heißt! Diese Datei exstiert auf jeder Disk, egal formatiert oder alles gelöscht.


Grüße
Dani
Member: bastla
bastla Mar 04, 2007 at 20:55:17 (UTC)
Goto Top
@Dani

"NUL" ist keine Datei, sondern ein Device, aber in diesem Fall ohnehin entbehrlich:
if exist a: ...
tut's auch.

Grüße
bastla
Member: Dani
Dani Mar 04, 2007 at 21:13:26 (UTC)
Goto Top
@bastla
Hab's mir schon gedacht. Aber es existert doch in jedem Ordner irgendwie eine Datei die man nicht sieht. Oder verwechsle ich das?!


Grüße
Dani
Member: Geplagter
Geplagter Mar 04, 2007 at 21:38:10 (UTC)
Goto Top
Leider gehen beide Varianten nicht.
Falls keine Diskette eingelegt ist, kommt dieses unschöne Windowspop.
Kann man das vielleicht (kurzzeitig) unterdrücken?
Member: Dani
Dani Mar 04, 2007 at 22:09:44 (UTC)
Goto Top
das ist aber seltsam....probier es mal mit "dir A:". Somit erscheint kein Dialog von Windows. Ich hätte dir den Batch geschrieben, aber da ich morgen für 4 Tage weg bin sollte ich schauen, dass ich fertig werde mit packen. Sry....


Grüße
Dani
Member: Geplagter
Geplagter Mar 04, 2007 at 23:13:30 (UTC)
Goto Top
So, habs endlich hinbekommen, dank eurer Hilfe.
Code:
8<--------------------------
dir a: | find "A:"

if errorlevel 0 (
if errorlevel 1 (goto noFloppy)
goto floppy
)
8<--------------------------
Member: bastla
bastla Mar 05, 2007 at 06:05:22 (UTC)
Goto Top
Hallo Geplagter!

Mir ist auch nicht klar, warum die "if exist"-Vorgangsweise nicht klappt, aber wie auch immer ...
Du könntest die Methode mit "dir" noch etwas kürzer fassen:
dir a:>nul 2>nul && goto :Floppy || goto :NoFloppy
:NoFloppy
echo Keine Diskette in Laufwerk A: gefunden
...
...
:Floppy
echo Diskette in Laufwerk A: wird verwendet.
...
...
Den "goto :noFloppy"-Teil habe ich natürlich nur zu Demonstrationszwecken angeschrieben.

Grüße
bastla
Member: Biber
Biber Mar 05, 2007 at 06:06:02 (UTC)
Goto Top
Moin Geplagter,

kann sein, dass M$ es wirklich je nach OS-Variante unterschiedlich handhabt.
Ein "if exist a:\*.*" bei nicht eingelegter Diskette bringt bei mir (WIN XP SP2) auch ein hässliches Popupfenster "Es ist kein Datenträger eingelegt..." .
Kenne ich von keiner vorangegangenen CMD.exe/Command.com-Version.

Anyhow - ein "Dir a:" bringt zwar einen Fehler "Das Gerät ist nicht bereit.", aber kein Popup.

Somit bist Du mit Deinem Fragment auf dem richtigen Weg. Etwas eingedampft sähe das so aus:
dir a: 2>nul|find "A:">nul ||goto nofloppy  

Gruss Biber
P.S @Dani
Aber es existert doch in jedem Ordner irgendwie eine Datei die man nicht sieht.
Ich möchte jetzt ungern wieder auf Nessie, Elektrosmog und den Aufschwung verweisen, weil Geplagter da ein wenig sensibel ist, aber.... face-wink
[Edit] P.P.S. Moin bastla, musst Du immer rechts überholen am frühen Montagmorgen? face-big-smile

Das "dir a:>nul 2>nul && goto floppy" wird schiefgehen, wenn eine leere Diskette eingelegt ist (Gerät ok, aber keine Dateien vorhanden).
[/Edit]
Member: bastla
bastla Mar 05, 2007 at 09:45:06 (UTC)
Goto Top
@Biber

Ich werde jetzt nicht auf den Thread-Titel verweisen (was auch sinnlos wäre, da ich Dich falsch verstanden hatte face-big-smile), sondern Dir einfach wieder einmal Recht geben ...

Bei meinem XP Pro SP2 tut sich übrigens fensterlmäßig nix.

@Dani

Die Schreibweise "if exist D:\Test\nul" würde zB Sinn machen, wenn ich feststellen wollte, ob es sich bei "D:\Test" um ein Verzeichnis oder eine Datei handelt.

Grüße
bastla