[Batch] Delayed Extension

chrysler

Erfahrenes Mitglied
Hallo.
Ich versuche mich am batch-sricpting; im Moment komme ich an wenigen Stellen nicht weiter.

Code:
set /P patha=&ltC:\Patch\patha.txt
Was heißt &lt ? Die cmd will einen Pfad als Input, ansonsten Fehler.


Code:
set delimiter=-
set filename=%cd%
for %%i in (*) do if not "%%i"=="%~nx0" echo.%filename%%delimiter%%%~i
Wie soll ich das %%~i verstehen?


Wo ist das Problem? Einfach mit ".." eine Stufe höher gehen, den Pfad expandieren und dann ein Replace. Das Replace kann leider unsauber werden, deshalb muss man die Variable mit etwas anderem als '%' expandieren - nämlich '!'. Dazu natürlich Delayed Expansion anschalten.

Code:
set y=%x%\..
for /f "delims=" %%i in ("%x%") do set z=%%~i
set last=%x:!z!=%

Was ist die Delayed Expansion und was bedeutet noch der Code, der dazugehört:


Code:
set repl=%x:^^=^^^^%
set repl=%repl:^&=^^^&%
set repl=%repl:^!=^^^!%
set repl=%repl:^%=^^^%%
 

Neue Beiträge

Zurück