Supportnet / Forum / BS-Sonstige
BAT soll prüfen ob diskette eingelegt ist
Frage
ich möchte eine bat schreiben die prüft ob sich eine diskette in A befindet.
falls nicht soll das prog verzweigen ohne eine fehlermeldung auszuwerfen.
ich hatte es erst mit "exist" versucht,
geht aber wohl nicht.
Antwort 1 von Windoofhasser
Wie wär´s damit:
If exist a:\*.* echo Diskette drin!
bzw.
If not exist a:\*.* goto .....
If exist a:\*.* echo Diskette drin!
bzw.
If not exist a:\*.* goto .....
Antwort 2 von amnesie
das hatte ich schon versucht aber!
das prog soll nicht antworten:
fehler beim lesen von laufwerk A
Abbrechen Wiederholen Fehler_
das prog soll nicht antworten:
fehler beim lesen von laufwerk A
Abbrechen Wiederholen Fehler_
Antwort 3 von Joe_69
@ amnesie:
Das Beispiel von Windoofhasser klappt schon, allerdings muss sich mindestens eine Datei auf der Diskette befinden.
Beispiel einer kompletten Bat:
PS: Das letzte "Echo" kann weggelassen werden.
mfg Joe
Das Beispiel von Windoofhasser klappt schon, allerdings muss sich mindestens eine Datei auf der Diskette befinden.
Beispiel einer kompletten Bat:
@echo off
if exist a:\*.* goto ja
if not exist a:\*.* goto nein
:nein
calc.exe
:ja
echo Diskette ist eingelegt!PS: Das letzte "Echo" kann weggelassen werden.
mfg Joe
Antwort 4 von amnesie
das hatte ich schon versucht aber!
das prog soll nicht antworten:
fehler beim lesen von laufwerk A
Abbrechen Wiederholen Fehler_
wenn keine diskette eingelegt ist
das prog soll nicht antworten:
fehler beim lesen von laufwerk A
Abbrechen Wiederholen Fehler_
wenn keine diskette eingelegt ist
Antwort 5 von semi
Wenn Du einen Virenscanner hast, dann kommt immer so eine Meldung, da der Virenscanner versucht den Bootsector einer nicht existierenden Diskette zu lesen.
Ansonsten versuche
if exist a: goto ja (funktioniert unter W2k ohne die Fehlermeldung)
Ansonsten versuche
if exist a: goto ja (funktioniert unter W2k ohne die Fehlermeldung)
Antwort 6 von shrike
@semi
Korrekt - aber NUR unter W2K/XP! Weil der CMD-Interpreter etwas intelligenter als die COMMAND.COM ist. (bei NT geht es übrigens so auch noch nicht)
@amnesie
Das läßt sich nur mit alten DOS-Tricks umgehen :-)
Es gibt einen (undokumentierten) COMMAND.COM-Parameter (/f), mit dem diese Meldung zwar immer noch erscheint, aber keine Taste mehr gedrückt werden muß, um weiterzumachen.
1. Möglichkeit:
In der Config.sys den Kommandointerpreter gleich so festlegen:
SHELL=(Pfad)\COMMAND.COM /P /F /E:1024
(der Parameter /E: für die Größe des Umgebungsvariablen-Bereichs ist nicht unbedingt erforderlich)
2. Möglichkeit
Du startest nur die Batch selbst in einer neuen Command-Shell mit diesem Parameter:
command /f /c batch.bat
Die Batch selbst könnte dann ganz normal so aussehen (hast du ja schon):
@echo off
if exist a:\nul goto WEITER
cls
echo Diskette fehlt!
goto ENDE
:WEITER
echo Diskette ist eingelegt.
:ENDE
shrike
Korrekt - aber NUR unter W2K/XP! Weil der CMD-Interpreter etwas intelligenter als die COMMAND.COM ist. (bei NT geht es übrigens so auch noch nicht)
@amnesie
Das läßt sich nur mit alten DOS-Tricks umgehen :-)
Es gibt einen (undokumentierten) COMMAND.COM-Parameter (/f), mit dem diese Meldung zwar immer noch erscheint, aber keine Taste mehr gedrückt werden muß, um weiterzumachen.
1. Möglichkeit:
In der Config.sys den Kommandointerpreter gleich so festlegen:
SHELL=(Pfad)\COMMAND.COM /P /F /E:1024
(der Parameter /E: für die Größe des Umgebungsvariablen-Bereichs ist nicht unbedingt erforderlich)
2. Möglichkeit
Du startest nur die Batch selbst in einer neuen Command-Shell mit diesem Parameter:
command /f /c batch.bat
Die Batch selbst könnte dann ganz normal so aussehen (hast du ja schon):
@echo off
if exist a:\nul goto WEITER
cls
echo Diskette fehlt!
goto ENDE
:WEITER
echo Diskette ist eingelegt.
:ENDE
shrike
Antwort 7 von shrike
PS: Durch das "cls" verschwindet die trotzdem erscheinende Meldung gleich wieder.
shrike
shrike
Antwort 8 von amnesie
ich habe eine zweite bat geschrieben
die folgendes beinhaltet:
command /f /c test.bat
es funzt DANKE an alle und besonders
an shrike
die folgendes beinhaltet:
command /f /c test.bat
es funzt DANKE an alle und besonders
an shrike

