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 
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