Copiando arquivos com um curinga de e para diretórios que possuem um curinga

0

Eu quero copiar arquivos com vários nomes & extensões, de um diretório cujo nome tem uma determinada raiz, mas pode ter um sufixo, para um diretório diferente.

Um loop for parece funcionar para o caractere curinga do diretório, mas parece impedir um caractere curinga para o nome do arquivo. Aqui está o que eu tenho no arquivo em lotes:

SET /P M= ENTER THE TEST #
MKDIR "S:\Photometric\Experimental\E%M%"
COPY "S:\Photometric\Approved\%M%*\*.*" "S:\Photometric\Experimental\E%M%*"

Qualquer ajuda é muito apreciada.

    
por Phil McCarthy 01.02.2018 / 23:57

1 resposta

0

Tente isto:

@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

Isso pesquisará o source_dir e copiará todos os arquivos e subpastas de cada pasta que corresponderem a %M% ao target_dir .

Esta provavelmente não é a maneira mais eficaz de conseguir isso, mas como a opção /XD de ROBOCOPY não funciona com curingas, não pude pensar em nada melhor.

    
por 02.02.2018 / 17:04