Batch Dokumentennamen Abfrage?
Hallo
Ich möchte eine Batchprogramm schreiben, dass eine benutzerdefinierte Variable erstellt und diese mit allen Namen von Text-Dokumenten an einem bestimmten Ort vergleicht und wenn die Namen und die Variable übereinstimmen eine Aktion ausführt und wenn nicht eine andere.
Hat Jemand eine Idee Wie das Funktionieren könnte?
Was genau hat es mit der Variable auf sich? Soll eine Variable einen Dateinamen enthalten und es soll überprüft werden, ob eine Datei mit diesem Namen existiert?
Ich möchte das man mit „set/p x=„ etwas eingibt und wenn x.txt ein Dateiname in einem Ordner ist soll man wieder an den Anfang kommen und sonst soll es weiter gehen.
2 Antworten
:START
set /p EingabeString=
if exist "C:\Ordner\%EingabeString%" (
rem Mache das eine...
echo Es existiert bereits eine Datei mit dem Namen "%EingabeString%".
goto :START
) else (
rem Mache das andere...
)
rem Mache weiter und noch ganz andere Sachen...
Danke das ist super aber wisst ihr auch ob man Variablen die ein Leerzeichen haben Filtern und zurücksetzen kann?
was meinst Du damit? sowohl Tilos als auch meine Lösung können mit Leer- und Sonderzeichen in der Eingabe und in den Dateien umgehen...
VariablenNamen dürften Leerzeichen enthalten, jedoch sollte man darauf verzichten da Dies durchaus zu unerwünschten Nebenwirkungen führen kann.
die Variable wird später der Name einer txt Datei und da das Programm auch von anderen Personen genutzt wird möchte ich die Möglichkeit, dass es Fehler gibt ausschließlich.
ganz einfach... (lass Dich nicht durch den Demonstrationskram beeindrucken. Das habe ich nur beigefügt, um definiert Verhältnisse zu erzeugen. ich kenne schließlich nicht Deine Ordnerstrukturen und natürlich soll etwas gemacht oder nicht gemacht werden)
@echo off
set "searchFolder=Mein Ordner"
rem demodateien in ordner schreiben
md "%searchFolder%" 2>nul
(echo irgendwas)>"%searchFolder%\franz.doc"
(echo irgendwas)>"%searchFolder%\max.doc"
(echo irgendwas)>"%searchFolder%\elfriede.doc"
(echo irgendwas)>"%searchFolder%\hugo.doc"
set /p "searchDocName=gib franz,max...ein: "
rem nach Datei suchen
dir /b /a:-d "%searchFolder%\%searchDocName%.doc" 2>nul|find /i "%searchDocName%" >nul &&(
rem hier wenn gefunden
echo "%searchFolder%\%searchDocName%.doc" gefunden
echo inhalt:
type "%searchFolder%\%searchDocName%.doc"
) || (
rem hier wen nicht gefunden
echo "%searchFolder%\%searchDocName%.doc" gefunden
echo erzeuge neues dokument
echo Dokumente im Ordner "%searchFolder%":
@(echo diese Datei wurde am %Date% %time% neu erzeugt)>"%searchFolder%\%searchDocName%.doc"
dir /b "%searchFolder%\*.doc"
)
pause
glossar:
👍👍jup...unsereins Denkt schon in solch hohen Gefielden, das man die primitiven Lösungen gar nicht mehr in betracht zieht...😤🤣🤣🤣🤣
...so ist das, wenn man normalerweise Brücken über reißende Ströme baut.... dann vergisst man das man auch über einen Bach hüpfen kann...
alle Dateien vergleichen...🤔 da zündet automatisch bei mir dir und find ...dabei genügt tatsächlich nur festzustellen ob die Datei existiert...🤭🤭🥵ich grab mich ein👻💩