Ich brauche einen Schläger namens here.bat
, um Dateien in den gleichen Verzeichnissen zu verarbeiten. Hier ein Beispiel:
Windows bat: wie Dateien für jedes Unterverzeichnis verarbeitet werden
mydir
|----mybat.bat
|----here.bat
|----subdir
|-----subdir2
|-----subdir3
|-----subdir31
| |-----a.jpg
|
|-----subdir32
|-----b.jpg
Ich brauche here.bat
zu verwenden a.jpg
und b.jpg
zu verarbeiten. Also schreibe ich eine Fledermaus Datei mit dem Namen mybat.bat
wie folgt:
@Echo off&SetLocal EnableExtensions EnableDelayedExpansion
For /d %%A in (.\subdir\*) Do (
Set "Files="
For /F "delims=" %%B in ('dir /S /B "%%~fA\*.jpg"') Do Set Files=!Files! "%%~fB"
If defined Files echo call here.bat !Files!
)
pause
Als ich mybat.bat
ausführen, bekomme ich das Ergebnis wie folgt:
call here.bat "C:\Users\me\mydir\subdir\subdir2\subdir3\subdire31\a.jpg" "C:\Users\me\mydir\subdir\subdir2\subdir3\sudbir32\b.jpg"
Aber das ist nicht das, was ich brauche. Ich muss jpg
Dateien verarbeiten, die im selben Verzeichnis mit here.bat
sind, wenn sie nicht im selben Verzeichnis sind, sollten sie separat verarbeitet werden. wie unten Was bedeutet, dass ich das Ergebnis benötigen:
call here.bat "C:\Users\me\mydir\subdir\subdir2\subdir3\subdire31\a.jpg"
call here.bat "C:\Users\me\mydir\subdir\subdir2\subdir3\sudbir32\b.jpg"
Warum ist die Antwort in [Ihre andere ähnliche Frage] (https://stackoverflow.com/questions/44402963/windows-bat-loop-files-in-directories) nicht ausreichend? –
@JeffZeitlin Meiner Meinung nach liegt das daran, dass die Subpfade in der anderen Frage völlig verschieden sind: 'subdir1 ...' und 'subdir2 ...'. Aber hier sind die Teilwege sehr ähnlich. Nun, ich bin mir nicht sicher ... Aber du kannst meine Antwort in dieser Frage versuchen. Ich glaube, dass Sie das gleiche Problem bekommen werden. – Yves
Aber die gleichen Techniken sollten funktionieren, unterscheiden sich nur in den Details. Möglicherweise müssen Sie sich etwas Zeit nehmen, um mehr über die Programmierung im Allgemeinen und die Stapelprogrammierung zu erfahren, damit Sie diese Probleme selbst lösen können, anstatt wiederholt Fragen zu stellen, die wirklich nur geringfügige Unterschiede in den Bedingungen haben. –