Supportnet Computer
Planet of Tech

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 .....

Antwort 2 von amnesie

das hatte ich schon versucht aber!
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:
@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

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)

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

Antwort 7 von shrike

PS: Durch das "cls" verschwindet die trotzdem erscheinende Meldung gleich wieder.

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

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: