[Batch] For %%a in... %%a an variable übergeben

Hyper Lord

Mitglied
Hallo, ich habe folgendes Problem,
Ich möchte eine Text-Datei mit einer Schleife durchlaufen lassen,
in dieser txt befinden sich Dateinamen und wenn ein neues verzeichniss kommt
ein Verzeichnispfad:
\test\test2\test3
hallo.php
Welt.txt
\testa\testb
neueDatei.jpg
use...
wenn ich nun in der schleife auf einen Pfad stosse :
Code:
set "HauptPfad=C:\test\test"
For /f %%a in (c:\txt.txt) do (
set "NewVariable=%%a"
If "%NewVariable%:~0,1" == "\" (
set "NeuPfad=%HauptPfad%;%NewVariable%"
pushd"%NeuPfad"
) else (
echo "del %%a"
)
pause
)
cmd
funktioniert das irgendwie nicht, else kann er nicht erkennen und den
NeuPfad ist leer bzw. wird nicht erkannt, ich habe gegooglet aber irgendwie nichts gefunden, vielleicht habe ich auch nicht genügend Fachkentnis um nach den richtigen begriffen zu googlen.
ich müsste wissen wie ich %%a in einer neuen variable speicher, ich galube dann kann ich auch das erste zeichen der neuen Variable auslesen.die Variablen Namen sind nur in dem BSP so in dem Skript sind sie anderst benannt, habe das nur zur besseren Übersicht so benannt
Kann mir bitte jemand helfen
vielen Dank im vorraus
 
Zuletzt bearbeitet von einem Moderator:
super vielen dank für die Hilfe, klappt wunderbar, ich habe zwar nicht ganz genau verstanden, was er da alles erklärt, da mein englisch nicht das beste ist aber das was ich brauchte hat funktioniert, und nun geht auch der rest wie geschmiert, bis auf die If abgfrage,
ich frage nach dem ersten Zeichen, wenn das ein \ tu was, ansonsten was anderes, kann es sein das batch kein else erkennt, er sagt mir dann immer else befehl kann nicht gefunden werden?

Noch ein kleines Problem, wenn ich nun mit pushd "!pfadneu!" den neuen Pfad setzen will findet er das Verzeichnis nicht, als
Code:
set "pathstandart=C:\test"
set "pfadneu=!pathstandart!%%a"
pushd "!pfadneu!"
da bringt er mir den Fehler verzeichnis nicht gefunden
 
Zuletzt bearbeitet von einem Moderator:
die If abgfrage,
ich frage nach dem ersten Zeichen, wenn das ein \ tu was, ansonsten was anderes, kann es sein das batch kein else erkennt, er sagt mir dann immer else befehl kann nicht gefunden werden?
Wie sieht dein Code jetzt genau aus?

Und wie genau lautet die Fehlermeldung? (Kopieren und hier einfügen!)
Noch ein kleines Problem, wenn ich nun mit pushd "!pfadneu!" den neuen Pfad setzen will findet er das Verzeichnis nicht, als
Code:
set "pathstandart=C:\test"
set "pfadneu=!pathstandart!%%a"
pushd "!pfadneu!"
da bringt er mir den Fehler verzeichnis nicht gefunden
Wie genau ist denn der Wert von pfadneu?

Und Standard schreibt man mit d.

Gruß
 
Zurück