Batch - Dateinamen-Ausgabe in Datei, ohne ''

Von: , Frage gestellt am Di, 23. Jan 2007

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

5 Antworten zu dieser Frage

  1. Antwort von nach 22 Minuten 0 hilfreich
    Re: Batch - Dateinamen-Ausgabe in Datei, ohne ''

    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

    • Antwort von nach 34 Minuten 0 hilfreich
      Re^2: Batch - Dateinamen-Ausgabe in Datei, ohne ''

      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

      • Antwort von nach 2 Stunden 0 hilfreich
        Re^3: Batch - Dateinamen-Ausgabe in Datei, ohne ''

        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

        • Antwort von nach 3 Stunden 0 hilfreich
          Re^4: Batch - Dateinamen-Ausgabe in Datei, ohne ''

          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

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!