Ich arbeite an Windows. Ich habe viele jpg
Dateien in Unterverzeichnissen eines Verzeichnisses. Ich weiß nicht genau die Architektur des Verzeichnisses, was bedeutet, dass ich nicht weiß, wie viele Ebenen die Unterverzeichnisse haben. Was ich tun muss, ist jpg
Dateien nach ihren Pfaden zu verarbeiten. Hier ein Beispiel:
Windows bat: Loop-Dateien in Verzeichnissen
dir
|---sub dir1
| |-----sub dir11
| |-----a.jpg
| |-----b.jpg
|---sub dir2
|-----c.jpg
|-----d.jpg
Also brauche ich Befehle auszuführen, wie unten:
process.bat C:\dir\sub dir1\sub dir11\a.jpg C:\dir\sub dir1\sub dir11\b.jpg
process.bat C:\dir\sub dir2\c.jpg C:\dir\sub dir2\d.jpg
Ich weiß nicht, wie eine solche bat-Datei zu schreiben, vor allem eine Fledermaus Verarbeitungspfade Leerzeichen enthält. Ich weiß nicht, ob Räume Probleme machen.
Ich habe wie unten versucht, aber es funktioniert nicht:
@Echo off&SetLocal EnableExtensions EnableDelayedExpansion
For /d %%A in (C:\dir\*) Do (
Set "Files="
For /f %%B in ("%%~fA\*.jpg") Do Set Files=!Files! "%%~fB"
If defined Files echo process.bat %%~fA\*.jpg
)
pause
Als ich das Skript ausführen, ich wie das folgende Ergebnis:
process.bat C:\dir\sub dir1\*.jpg
process.bat C:\dir\sub dir2\*.jpg
Es scheint, dass *
wird als normales Zeichen betrachtet.
Ich versuche nur Ihre Änderung. Es scheint zu funktionieren, außer dass die Leerzeichen in den Pfaden ein anderes Problem hervorrufen. Jetzt bekomme ich ein solches Ergebnis: 'process.bat C: \ dir \ unterprocess.bat C: \ dir \ sub' – Yves
Ich entferne nur alle Leerzeichen in den Pfaden und es funktioniert immer noch nicht. Ich habe das: 'process.bat C: \ Verzeichnis \ Unterverzeichnis1 \ *. Jpg Prozess.bat C: \ Verzeichnis \ Unterverzeichnis2 \ *. Jpg' – Yves
Problem gelöst. Ich stelle eine andere Antwort. – Yves