Batch Dokumentennamen Abfrage?

timlg07  28.04.2020, 14:43

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?

Potterforever 
Fragesteller
 28.04.2020, 15:02

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

Vom Fragesteller als hilfreich ausgezeichnet
: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...

Potterforever 
Fragesteller
 28.04.2020, 15:50

Danke das ist super aber wisst ihr auch ob man Variablen die ein Leerzeichen haben Filtern und zurücksetzen kann?

0
Erzesel  28.04.2020, 16:11
@Potterforever

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.

0
Potterforever 
Fragesteller
 28.04.2020, 18:57
@Erzesel

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.

0
Erzesel  28.04.2020, 16:01

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

und diese mit allen Namen von Text-Dokumenten an einem bestimmten Ort vergleicht

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👻💩

2

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:

Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren