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
dalai staubwolke „hallo ihr Leser und Schreiber Danke ........ hallo dalai, ... dein Tip war die...“
Optionen

Ja, sowas an Batch hab ich schon geahnt... Da sind jede Menge Fehler und Unnötigkeiten drin. Die temporäre Datei - davon abgesehen, dass die überhaupt nichts auf C:\ zu suchen hat - ist überflüssig, weil man die Ausgaben von Befehlen sofort in einer for-Schleife verarbeiten kann.

Ich hab da mal kräftig aufgeräumt und umgebaut, auch wenn mir nicht klar ist, warum du 2 Parameter benutzt. Versuch's mal so:

@echo off

if not exist "%~1\%~2\*.mp3" (
    echo =============================================
    echo.
    echo .. keine FLAC, APE, WV, WAV, oder mp3 Datei gefunden !
    echo.
    echo =============================================
    pause
    goto :EOF
)

for /F "tokens=*" %%g IN ('dir /b /on "%~1\%~2\*.mp3"') DO (
    echo %~2\%%g >> "%~1\-play-...%~2.m3u"
)

Dieses Forum ist leider für Code völlig ungeeignet, weil es keine separaten Tags dafür bietet und auch sonst den eingefügten Text nicht wie geschrieben übernimmt. Pastebin o.ä. Dienste wären wohl geeigneter...

MfG Dalai

Echte Hilfe kann´s nur bei Rückmeldungen geben.
bei Antwort benachrichtigen