Batch - Dateinamen-Ausgabe in Datei, ohne ''

Hi,

also ich habe eine FOR-Schleife in einer Batchdatei, welche einzelne Dateinamen ohne Anführungszeichen in eine Textdatei schreiben soll

also wenn ich jetzt zB. die Datei „bla & bla.txt“ habe

set datei=„bla & bla.txt“
echo.%datei%
rem Das geht noch ohne Probleme

echo.%datei:~1,-1% >>log.txt
rem
rem Der Befehl „bla.txt“ ist entweder falsch geschrieben oder
rem konnte nicht gefunden werden.

Hat jemand ne Idee??
mfg
Matze

Hallo
Der Fehler ist einmal hier:

also wenn ich jetzt zB. die Datei „bla & bla.txt“ habe

set datei=„bla & bla.txt“
echo.%datei%

Ich würde einfach nur echo %datei% schreiben, mit Leerstellen.
Den Punkt versteh ich nicht, aber geht ja, wie du sagst.

rem Das geht noch ohne Probleme

dann aber:
echo.%datei:~1,-1% >>log.txt
%datei:~1,-1% wird dabei als Inhalt der Variablen datei:~1,-1 interpretiert, und die ist schlicht nicht vorhanden.
Warum nicht echo %datei% >> log.txt ?
Sollte funktionieren.

Hat jemand ne Idee??
mfg
Matze

MfG
Matthias

Hi,

set datei=„bla & bla.txt“
echo.%datei%

Ich würde einfach nur echo %datei% schreiben, mit Leerstellen.
Den Punkt versteh ich nicht, aber geht ja, wie du sagst.

Naja er macht da eigentlich keinen Sinn, da hast Recht. Wäre nur für den Fall das %datei% mal n leerer String wäre.

echo.%datei:~1,-1% >>log.txt
%datei:~1,-1% wird dabei als Inhalt der Variablen datei:~1,-1
interpretiert, und die ist schlicht nicht vorhanden.

mmh doch das ist so ne komische Stringoperation, gibts glaub erst seit xp. Heisst es soll nur der String vom ersten Zeichen bis zum ersten vom Sring-Ende (deswegen Minus) Zeichen ausgegeben werden. Also die " wegschnibbeln.

Warum nicht echo %datei% >> log.txt ?

Mmmh ich will mir ne m3u-Playlist für Winamp damit basteln…
Und weder Winamp noch der Wnidows Media Player sind in der Lage die Anführungszeichen zu ignorieren (also wundert mich grad beim WMP)

Trotzdem Danke für deinen Einsatz :smile:
mfg
Matze

Hallo erstmal

echo.%datei%

Ich würde einfach nur echo %datei% schreiben, mit Leerstellen.
Den Punkt versteh ich nicht, aber geht ja, wie du sagst.

Naja er macht da eigentlich keinen Sinn, da hast Recht. Wäre
nur für den Fall das %datei% mal n leerer String wäre.

Die Bedeutung dessen muss ich erst noch testen. Wird da keine Leerzeile geechotet, wenn mit Punkt?

ausgegeben werden. Also die " wegschnibbeln.

Also das geht zumindest so:
Mach einen Aufruf
sowieso.bat %datei% mit %datei% mit Leerzeichen und Anführungszeichen drin.
In sowieso.bat steht dann
echo %~1 >> deinlogfile.log

Dann sind sie weg, die bösen A.Zeichen.

Ist wohl nicht elegant, aber sollte klappen.
Stringverarbeitung in Batch kenn ich noch nicht.

MfG&%vielSpass%

Matthias

Hoi,

echo %~1 >> deinlogfile.log

So hab ichs auch schon probiert, aber das klappt bei mir nicht… (wegen dem blöden & Zeichen)

Mit normalen Dateinamen geht das, nur nicht wenn ein UND drin ist wie mir scheint.
mfg
Matze

Lösung
man muss das & maskieren:

set d1=%d1:&=^&%
„Maskiert“ das UND-Zeichen

echo %d1:~1,-1%
-> UND ES GEHT !!

Danke an:
https://www.administrator.de/Bat_Script_Probleme_bei…

ade
Matze