# Batch: Variable prüfen



## ElGreco93 (25. April 2010)

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:

```
#EXTM3U
#EXTINF:234,3 Doors Down - Here Without You
D:\Musik\Rock\03 Here Without You.mp3
```

Mit 
	
	
	



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


----------



## Biber2 (25. April 2010)

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:

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


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


----------



## deepthroat (26. April 2010)

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ß


----------

