Batch Datei und Exist
Hallo,
ich schreibe gerade ein Batch-Script und stehe vor einem kleinen Problem. Das Script soll einfach Überprüfen, ob eine bestimmte Datei auf einer SD-Karte ist, wenn nicht, soll es den Benutzer auffordern, die Karte einzulegen, wenn ja, soll er etwas damit machen.
Mein Script funktioniert jetzt schon sehr gut, allerdings gibt es noch Probleme, wenn sich keine SD-Karte im Laufwerk befindet. Aber zuerst der betreffende Teil meines Scripts:
- Code: Alles auswählen
if not exist H:\datei.doc goto missing
if exist H:\datei.doc goto exists
Wie gesagt funktioniert die Überprüfen, es erscheint bloß eine hässliche Windows-Fehlermeldung, dass sich kein Datenträger im Laufwerk befindet und ich gefälligst einen einlegen solle. Diese Meldung ist mir durchaus recht, allerdings hätte ich diese Fehlermeldung lieber in der Batch-Datei geschrieben, als sie mir von Windows ausgeben zu lassen.
Gibt es eine Möglichkeit diese Meldung zu verhindern, bzw. über die Batch-Datei zu überprüfen, ob ein Datenträger im Laufwerk vorhanden ist?
Ich würde es anders probieren:
- Code: Alles auswählen
if exist H:\datei.doc goto exists
echo Bitte Karte einlegen
Dann kannst Du Dein Skript immer noch so programmieren, dass es auf die nicht eingelegte Karte reagiert.
Hallo,
danke für deine Antwort, aber leider behebt das in keinster Weise mein Problem, sondern verschönert lediglich den Code. Das Problem liegt daran, dass er durch die exist-Abfrage versucht auf den Datenträger zuzugreifen.
Wenn dieser nicht eingelegt ist, geht die Anfrage ins Leere. Die Batch-Datei erkennt dann zwar, dass die Datei nicht existiert, allerdings muss man vorher die Windows-Fehlermeldung mit Weiter oder Abbrechen bestätigen. Es geht mir darum diese Fehlermeldung wegzubekommen.
Dazu bräuchte ich vermutlich einen anderen Befehl als exist, der überprüft, ob überhaupt ein Datenträger im Laufwerk ist, ohne einen Lesezugriff auf den selben zu veranlassen.
Hast du schon mal probiert, die Fehlermeldung mit errorlevel abzufangen?
Alternativ könntest Du mit
- Code: Alles auswählen
CTTY nul
- Code: Alles auswählen
CTTY con
So fit bin ich leider mit Batch-Dateien auch nicht mehr, aber vielleicht hilft Dir diese Site http://home7.inet.tele.dk/batfiles/ weiter, da gibt es die Kommandos gut aufgelistet.
Hallo,
danke für deinen Vorschlag, aber die bat-Datei wird angehalten, weil der Befehl exist nicht abgeschlossen ist. Die Möglichkeit mit CTTY sieht nicht so schön aus, weil nicht nur die Bildschirmanzeige, sondern auch die Tastatureingabe blockiert wird.
Ich habe die Datei allerdings gerade getestet und da hat es ohne Fehlermeldungen funktioniert. Das Problem tritt nur auf, wenn die SD-Karte sich schoneinmal im Laufwerk befunden hat und dann entfernt wurde. Ich denke das liegt daran, dass sie nicht richtig abgemeldet wird, aber das ist ein anderes Problem, zu dem ich einen eigenen Thread eröffnen werde.
Hi,
eine weitere Möglichkeit, die Fehlermeldung zu untergrücken, ist ein vorangestelltes
- Code: Alles auswählen
Echo Off
Damit kanst du die Bildschitmausgane und die fehlermeldung etwas eleganter ausblenden.
Wenn nur die Ausgabe der eienen scriptzeile ausgeblendet werden soll, dann kann man auch ein @-Zeichen davor stellen, in deinem Fall also:
- Code: Alles auswählen
@if not exist H:\datei.doc goto missing
mfg Qselma
Link dieser Seite https://www.talkteria.de/forum/topic-28411.html
Ähnliche Themen
Weitere interessante Themen
- Notebook von Plus 3298mal aufgerufen · 3 Antworten · Autor: Simone1987 · Letzter Beitrag von Entenhausen
Forum: Hardware
- Notebook von Plus
- Lohnen sich Asien Fonds? 4360mal aufgerufen · 4 Antworten · Autor: Balthasar · Letzter Beitrag von FinanzScout
Forum: Geldanlage
- Lohnen sich Asien Fonds?
- Überweisung rückgängig machen 5804mal aufgerufen · 5 Antworten · Autor: Player · Letzter Beitrag von Wibbeldribbel
Forum: Geld & Finanzen
- Überweisung rückgängig machen