Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge

Batch variablen mit Leerzeichen ohne " ausgeben

user_310340 / 9 Antworten / Flachansicht Nickles

Hallo Leutz

ich möche an eine Batchdatei Datei und Verzeichnissnamen übergeben die Leerzeichen enthalten,
dass das mit batch "langer Dateiname 1" "Verz 1" also doppelte Anführungszeichen geht ist mir soweit klar.

Wenn ich aber nun die Variablen mit z.B.

ECHO dir "%2\%1" >> neu.txt

in eine neue Datei schreibe werden die Anführungszeichen mit eingefügt
und der Inhalt sieht dann so aus

dir ""Verz 1"\"langer Dateiname 1""

wie kann ich die Anführungszeichen aus den Variablen unterdrücken damit ich

dir "Verz 1\langer Dateiname 1"

erhalte ?

schonmal Danke fürs lesen

clag

bei Antwort benachrichtigen
staubwolke dalai „Ziemlich einfach: benutze 1 statt 1. Die Tilde sorgt für die Entfernung vion...“
Optionen

hallo ihr Leser und Schreiber Danke ........

hallo dalai,

... dein Tip war die Info die ich suchte und es funktioniert auch prinzipiell,
nur die Schleifte in der ich es so verwenden wollte, verträgt dummerweise das zusätzlich Tildezeichen nicht :(

For /F "tokens=*" %%g IN (C:\alltrack.xxx) DO (
echo %~2\%%g >> %1\-play-...%2.m3u
)

vielleicht hast du ja eine Idee wieso das in der Schleife nicht funktioniert

hier mal der gesamte etwas abgespeckte Code der ohne Tilde genau das erwartete tut
nur das in der generierten *.m3u Datei der Pfad in " " steht,
mit Tilde bricht die Schleife aber einfach ab.....

@echo off
echo.
echo -variable 1
echo %1
echo.
echo -variable 2
echo %2
echo.
echo -variable ~2
echo %~2
echo.
echo.

pause


Rem if exist %1\disc-01\*.flac DIR /B /ON %1\disc-01\*.flac > C:\alltrack.xxx

if exist %1\%2\*.mp3 DIR /B /ON %1\%2\*.mp3 > C:\alltrack.xxx
if not exist C:\alltrack.xxx goto message

For /F "tokens=*" %%g IN (C:\alltrack.xxx) DO (
echo %2\%%g >> %1\-play-...%2.m3u
)

del C:\alltrack.xxx
goto ende

:message
echo.
echo =============================================
echo.
echo .. keine FLAC, APE, WV, WAV, oder mp3 Datei gefunden !
echo.
echo =============================================
echo.
pause

:ende
del C:\alltrack.xxx


Gruß staubwolke

bei Antwort benachrichtigen