Ich möchte Dateien mit verschiedenen Namen und Erweiterungen aus einem Verzeichnis, dessen Name eine bestimmte Stammverzeichnis hat, aber möglicherweise ein Suffix enthält, in ein anderes Verzeichnis kopieren.
Eine For-Schleife scheint für das Verzeichnis-Platzhalterzeichen zu funktionieren, scheint aber ein Platzhalterzeichen für den Dateinamen auszuschließen. Folgendes habe ich in der Batchdatei:
SET /P M= ENTER THE TEST #
MKDIR "S:\Photometric\Experimental\E%M%"
COPY "S:\Photometric\Approved\%M%*\*.*" "S:\Photometric\Experimental\E%M%*"
Jede Hilfe wird sehr geschätzt.
Antwort1
Versuche dies:
@ECHO OFF
SETLOCAL EnableDelayedExpansion
SET source_dir=S:\Photometric\Approved
SET target_dir=S:\Photometric\Experimental\E
SET /P M= ENTER THE TEST #
FOR /D /R %%G IN ("%source_dir%") DO (
SET "folder_name=%%G"
ECHO !folder_name! | FINDSTR /R "%M%" >nul && CALL :get_folder_name
ECHO !folder_name! | FINDSTR /B /R "%M%" >nul && ROBOCOPY "%source_dir%\!folder_name!" "%target_dir%\!folder_name!" /S
)
ECHO. & ECHO. & ECHO. & ECHO. & ECHO. & ECHO Done^^!
PAUSE
EXIT
:get_folder_name
SET folder_name=!folder_name:*\%M%=%M%!
SET endbit=!folder_name:*\=!
SET folder_name=!folder_name:%endbit%=!
SET folder_name=!folder_name:~0,-1!
EXIT /B
Dadurch wird die Datei durchsucht source_dir
und jede Datei und jeder Unterordner jedes Ordners kopiert, der %M%
mit der übereinstimmt target_dir
.
Dies ist wahrscheinlich nicht die effektivste Möglichkeit, dies zu erreichen, aber da die /XD
Option ROBOCOPY
mit Platzhaltern nicht funktioniert, fällt mir keine bessere ein.