2017-06-06 2 views
0

Ich brauche einen Schläger namens process.bat, um alle jpg-Dateien in einigen Unterverzeichnissen zu verarbeiten.
Windows bat: Wie Dateien in Unterverzeichnisse zu loopen

dir 
|---subdir1 
|  |-----a.jpg 
|  |-----b.jpg 
| 
|---subdir2 
     |-----c.jpg 
     |-----d.jpg 

process.bat dir/subdir1/a.jpg dir/subdir1/b.jpg 
process.bat dir/subdir2/c.jpg dir/subdir2/d.jpg 

In Linux, kann ich ein solches Skript machen:

find $1 -type d | while read dir; do 
    files=("$dir"/*.jpg) 
    if [ ${#files[@]} -gt 0 ]; then 
     if ! [[ $files =~ \* ]]; then 
      process.bat "${files[@]}" 
     fi 
    fi 
done 

Aber ich weiß nicht, wie die gleiche Sache in Windows zu tun. for /r %%i in (*) do echo %%i

Antwort

0

dir sollte ein absoluter Pfad sein:

> tree . /F 
C:\TEST\DIR 
├───subdir1 
│  a.jpg 
│  b.jpg 
│ 
├───subdir2 
│  c.jpg 
│  d.jpg 
│ 
└───subdir3 

@Echo off&SetLocal EnableExtensions EnableDelayedExpansion 
For /d %%A in (C:\Test\dir\*) Do (
    Set "Files=" 
    For %%B in ("%%~fA\*.jpg") Do Set Files=!Files! "%%~fB" 
    If defined Files echo process.bat !Files! 
) 

Beispiel für eine Ausgabe mit echo:
Ich habe, wie Loop-Dateien in Windows-Schläger bekannt

process.bat "C:\Test\dir\subdir1\a.jpg" "C:\Test\dir\subdir1\b.jpg" 
process.bat "C:\Test\dir\subdir2\c.jpg" "C:\Test\dir\subdir2\d.jpg" 
+0

https://stackoverflow.com/questions/44402963/windows-bat-loop-files-in-d Verzeichnisse – Yves

+0

Lesen Sie meine Antwort in diesem Link. Reedit ein wenig Ihre Antwort kann hilfreicher für andere sein. – Yves

Verwandte Themen