CMD If-Abfrage ob eine Datei existiert?
Möchte einen Befehl erstellen der ungefähr so ablaufen sollte
-ich gebe irgendein Wort ein z.B. "test"
-Kommandozeile sucht in dem Ordner Data/Personen nach dem Wort "test.txt"
-Wenn es die Datei gibt soll es ein goto Befehl ausgeben
-Wenn es die Datei NICHT gibt soll es sagen "Das Wort test gibt es nicht"
Etwas genauer:
Schritt 1: Ich gebe ein Wort ein ich nehme jetzt Baum
Schritt 2: Die Kommandozeile sucht in dem Ordner Data/Personen nacht Der Datei Baum.txt
Schritt 3: Die Kommandozeile findet die Datei und gibt ein goto Befehl aus ODER Die Kommandozeile findet die .txt Datei nicht und gibt den Text aus (Das Wort Baum gibt es nicht)
3 Antworten
Das kannst du doch auch mit dem Befehl dir und dann gucken was da drin ist
Ggf dir *.Dateiendung
Wenn es die Datei gibt müsste die Datei auch in der Übersicht erscheinen.
Oder was meinst du?
trivial, viele Wege führen nach Rom...
Mit: if exist "Pfad" machwas sind allerdings nur gezielte Abfragen in vorgegebenen Ordnern möglich
Demo.cmd
rem zur Demo TestOrdner erzeugen und TestDatei erzeugen
md Test\Sub\SubTest 2>nul
(call)>"Test\Sub\SubTest\Baum.txt"
set /p "MyFileName=Gib Baum ein!"
rem gezielt in einem bestimmten Ordner
if exist "Test\Sub\SubTest\%MyFileName%.txt" (
goto :OK
) else (
echo "Test\Sub\SubTest\%MyFileName%.txt" nich da!!!!!!!!!!!!
timeout 5 >nul
exit /b
)
:OK
echo Die Datei "%MyFileName%.txt" existiert!
pause
oder gezielter Blindflug:
rem Eingabe w/o
rem feststellen ob die Textdatei mit dem eingegebenen Namen in irgend einem Unterordner existiert
dir /b /s /a:-d "%MyFileName%.txt"|find /i "%MyFileName%" &&(
goto :OK
) || (
echo Nicht gefunden!!!!!!
timeout 5 >nul
exit /b
)
:OK
rem dito
das gleich ohne das man die Ergebnisse von "dir" sieht:
rem dito
rem mit unterdrückter Pfadausgabe
dir /b /s /a:-d "%MyFileName%.txt" 2>nul|find /i "%MyFileName%" >nul &&(
goto :OK
) || (
echo "%MyFileName%.txt" in keinem Unterordner!!!!!!
timeout 5 >nul
exit /b
)
:OK
rem dito
Eine implizite Auswertung der Errorlevel (hier von "Find" 0=gefunden) mit:
- "&&" für errorlevel 0 (Wahr)
- "||" für errorlevel>0 (falsch/fehler)
wichtig wenn ein zweiter (||)-Zweig angegeben wird, müssen die Ausgeführeten Optionen im Klammeblock gehalten werden!
Glossar:
Kommt drauf an für was du das Programm benützen willst, du könntest ja im Datei Explorer einfach eine Suche starten
Ich will das für ein kleines Spiel nutzen. Ich gebe ein Charackter ein, wenn es den nicht gibt soll gesagt werden das es ihn nicht gibt und wenn es ihn gibt soll eine goto Befehl folgen
Es soll automatisch ablaufen .Ich gebe was ein es soll danach in einem Ordner gesucht werden.
Wenn es die Datei gibt soll er einen Goto Befehl ausgeben .
Wenn es die Datei nicht gibt soll er sagen (Das Wort "test" gibt es nicht)