Batch Batch Pfad angabe funtz nicht so ganz

bigsanch

Erster Beitrag
Hi @ all

Nur mal so ne Frage bin nicht der totale Crack in Dos, aber was ich noch nie hatte und noch nicht mal weis, wonach ich da suchen muss, muss ich hier mal nen' neuen Threat aufmachen. Folgender Sachverhalt.

Ich habe eine Batch Datei, welche in einem Ordner meiner Wahl (incl. Unterordner), Musik automatisch umbenennt und danach verschiebt. Dazu lass ich eine Datei in jeden dieser Ordner kopieren, in welchem dann steht dass weg, umbenannt und wann gemacht und so.

Das habe ich wie folgt gemacht:

Code:
@echo off
  cls && echo.
  set /p pfad=Waehle einen Ordner zum bearbeiten: 
  for /F "delims=" %%d in ('dir /s /b /ad "%pfad%"') do xcopy B:\Tools\Musik.txt "%%d\"

So packt man das in eine meinetwegen test.bat, öffnet die und gibt einen Pfad ein, dann kopiert er in alle Ordner innerhalb des Pfads die Datei Musik.txt rein. Funtz alles einwandfrei.

So nun dachte ich, es mir einfacher zu machen und packe den gesamten Code mal in eine einzelne Datei und differenziere es mit einer Auswahl.

Das habe ich wie folgt gemacht:
Code:
@echo off
  cls && echo.
  echo.
  echo.   BLALBA
  echo.
  echo. Waehle aus:
  echo.
  echo.   1 - Musik.txt Datei in jeden Ordner kopieren
  echo.
  echo.   2 - Musik im lokalen Ordner verschieben
  echo.
  echo.   3 - Musik per Pfadeingabe verschieben
  echo.
  echo.   BLALBA
  echo.
  echo.   0 - Beenden
  echo.
  set /p auswahl=Waehle aus:
  if %auswahl%==1 (
	cls && echo.
	set /p pfad=Waehle einen Ordner zum bearbeiten: 
	for /F "delims=" %%d in ('dir /s /b /ad "%pfad%"') do xcopy B:\Tools\Musik.txt "%%d\"
  )
  if %auswahl%==2 (
	usw usw
  )
So wenn ich diese Datei nun öffne und dann die 1 drück und den Pfad eingebe, übernimmt er keinen Pfad und nimmt stattdessen den wo die Batchdatei drin ist.

Habe schon fast alles probiert, die echo Ausgabe von %pfad% (in jeglicher Schreibweise, ob mit "" oder !! oder allem und nichts) ergibt eine leere Variable. Habe es mit vorherigem cd /D %pfad% (auch wieder in jeglicher Schreibweise) versucht das selbe.

Was versteh ich da grad nicht so ganz? hoffe jemand kann helfen. Schon mal Danke an alle
 
Ich würde mal schwer darauf tippen dass du ein problem mit dem Delay hast...

Probier mal:

Code:
setlocal ENABLEDELAYEDEXPANSION
@echo off
  cls && echo.
  echo.
  echo.   BLALBA
  echo.
  echo. Waehle aus:
  echo.
  echo.   1 - Musik.txt Datei in jeden Ordner kopieren
  echo.
  echo.   2 - Musik im lokalen Ordner verschieben
  echo.
  echo.   3 - Musik per Pfadeingabe verschieben
  echo.
  echo.   BLALBA
  echo.
  echo.   0 - Beenden
  echo.
  set /p auswahl=Waehle aus:
  if %auswahl%==1 (
	cls && echo.
	set /p pfad=Waehle einen Ordner zum bearbeiten: 
	for /F "delims=" %%d in ('dir /s /b /ad "!pfad!"') do xcopy B:\Tools\Musik.txt "%%d\"
  )
  if %auswahl%==2 (
	usw usw
  )
 
Oben