Movendo 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 abaixo:

Primeiro tentou apenas copiar os arquivos usando this..didn't trabalhar

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
Ruth
fonte

Respostas:

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 trecho de código poderia 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 simplesmente exibe os comandos a serem executados para fins de depuração. Substitua echo copy /Bcom operacional copy /Bantes de ser depurado. Você também pode remover todos os elseramos.

Recursos (leitura obrigatória):

JosefZ
fonte