Kopieren von Dateien mit Platzhalterzeichen aus und in Verzeichnisse, die einen Platzhalter haben

Kopieren von Dateien mit Platzhalterzeichen aus und in Verzeichnisse, die einen Platzhalter haben

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_dirund 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 /XDOption ROBOCOPYmit Platzhaltern nicht funktioniert, fällt mir keine bessere ein.

verwandte Informationen