tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
1128
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    ElGreco93 ElGreco93 ist offline Mitglied Gold
    Registriert seit
    Sep 2007
    Beiträge
    104
    Hallo,
    ich schreibe grad ein Programm in Batch, welches mit Musikdateien aus einer *.m3u Playlist in ein Ordner Kopiert.
    Eine m3u-Playlist ist so aufgebaut:
    Code :
    1
    2
    3
    
    #EXTM3U
    #EXTINF:234,3 Doors Down - Here Without You
    D:\Musik\Rock\03 Here Without You.mp3

    Mit
    Code :
    1
    
    for /f %%i in (%playlist%.m3u)
    lese ich die Playlist ein.
    Wie kann ich in Batch überprüfen ob am anfang von %%i ein # vorkommt.
    Dann soll die Variable übersprungen werden.

    Danke schon mal im Vorraus

    Mfg Philip
     
    - Cinema 4d
    - Photoshop

  2. #2
    Biber2 Biber2 ist offline Mitglied Gold
    Registriert seit
    Jan 2007
    Ort
    Bremen
    Beiträge
    215
    Moin ElGreco93,

    dazu kannst du entweder die dynamische Laufvariable %%i in eine statische (=mit SET gesetze Variable) umkopieren und mit der CMD-eigenen Substring-Funktionalität arbeiten (siehe Set /? am CMD-Prompt) oder du filterst es mit Findstr aus.

    Demo am CMD-Prompt:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    D:\temp>
    $cmd$type BspPlaylist.m3u
    #EXTM3U
    #EXTINF:234,3 Doors Down - Here Without You
    D:\Musik\Rock\03 Here Without You.mp3
    D:\temp>
    $cmd$for /f "Delims=" %i in (BspPlaylist.m3u) do @echo %i|findstr /b "#"
    #EXTM3U
    #EXTINF:234,3 Doors Down - Here Without You
     
    D:\temp>
    $cmd$for /f "Delims=" %i in (BspPlaylist.m3u) do @echo %i|findstr /v /b "#"
    D:\Musik\Rock\03 Here Without You.mp3
    ( die Sequenz "D:\temp>CRLF$cmd$" ist mein CMD-Prompt, nicht mit eingeben.)

    Im Batch könnte es dann so aussehen:

    Code :
    1
    2
    3
    4
    5
    
    ....
    FOR /F "Delims=" %%i in (%playlist%) do (
        echo %%i|findstr  /b "#" && Echo doVerarbeite alle mit "#" am Zeilenbeginn
        echo %%i|findstr /v /b "#" && Echo doVerarbeite alle ohne "#" am Zeilenbeginn
    )

    Grüße
    Biber
     

  3. #3
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.169
    Hi.

    Man könnte auch einfach die eol Option einer for /F Schleife verwenden, dann werden die Zeilen die mit einem # beginnen automatisch herausgefiltert. Siehe "help for".

    Gruß
    Geändert von deepthroat (26.04.10 um 07:53 Uhr)
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

Ähnliche Themen

  1. Batch und imageMagick nur Dateinamen prüfen
    Von zyro im Forum Sonstige Sprachen
    Antworten: 2
    Letzter Beitrag: 07.07.09, 12:47
  2. Variable für Dateinamen in Batch
    Von Rechtschreibfehla im Forum Sonstige Sprachen
    Antworten: 2
    Letzter Beitrag: 16.06.09, 16:33
  3. [BATCH] Variable per Input?
    Von Fragstar im Forum Sonstige Sprachen
    Antworten: 2
    Letzter Beitrag: 10.04.05, 18:26
  4. BATCH: Bildschirmausgabe in Variable speichern
    Von PsD im Forum Sonstige Sprachen
    Antworten: 1
    Letzter Beitrag: 09.09.04, 22:32
  5. Dosbefehl oder Batch - Prüfen ob Server online
    Von MSuter im Forum Sonstige Sprachen
    Antworten: 1
    Letzter Beitrag: 22.01.04, 20:53