Mover arquivos pdf para a pasta pai da subpasta com nomes de variáveis

0

Estou tentando criar um arquivo bat que podemos usar diariamente para copiar ou mover arquivos PDF de subpastas (os nomes da pasta variam diariamente) para a pasta pai. Eu tentei o seguinte:

Primeiro tentei copiar os arquivos usando isso.não trabalhou

copy "Y:\Print OPS\Annuity Ops\*\*.pdf" "Y:\Print OPS\Annuity Ops"

Em seguida, tentei fazer uma lista dos arquivos a serem copiados e usá-los para copiá-los; a lista é criada pelos arquivos não copiados.

Echo %date%      Sweep Time = %time%       File count = %cnt% > 000_testpdf.txt
echo.>>000_testpdf.txt

dir /b /s *.pdf, /O:N >> 000_testpdf.txt

set logfile=MSOffice_PDF.log

dir /b /s *.pdf,  > 000_testpdf.txt

for /f "delims=" %%i in (000_testpdf.txt) do echo D|xcopy "Y:\Print OPS\Annuity Ops\%%i" "Y:\Print OPS\Annuity Ops%%i" /i /z /y
    
por Ruth 02.09.2015 / 19:03

1 resposta

0
                               v - disallowed
copy "Y:\Print OPS\Annuity Ops\*\*.pdf" "Y:\Print OPS\Annuity Ops"
                                 ^ allowed

Caracteres especiais * são permitidos somente na última parte de um caminho no Windows. O próximo snippet de código pode ajudar:

@ECHO OFF
SETLOCAL EnableExtensions
set "_parent=Y:\Print OPS\Annuity Ops" 
for /D %%G in ("%_parent%\*") do (
  if exist "%%~G\*.pdf" (
    echo copy /B "%%~G\*.pdf" "%_parent%\"
  ) else (
    echo nothig to copy "%%~G\*.pdf" "%_parent%\"
  )
)

Observe que o código acima meramente exibe os comandos a serem executados para fins de depuração. Substitua echo copy /B por copy /B operacional não antes que depurado. Você também pode remover toda a ramificação else .

Recursos (leitura obrigatória):

por 02.09.2015 / 22:04