Linhas de Comando do DOS Mover arquivos para pastas nomeadas com o mês anterior

1

Eu estou tentando criar uma tarefa no Agendador de Tarefas que moverá automaticamente alguns arquivos pdf para outra pasta que é baseada na data nos arquivos pdf que é para o mês anterior. O problema que estou tendo é que eu não consigo descobrir como obter a linha de comando para reverter para o mês anterior. Eu estou usando a mesma coisa para criar a pasta para começar, mas a tarefa está definida para ser executada no final do que seria considerado no mês anterior. Assim, por exemplo, uma tarefa em execução em outubro para criar a pasta para o mês atual de 2010-10 e outra em novembro, depois que os PDFs forem compilados, será movida para a pasta 2010-10. Alguma ideia?

Os parâmetros de data que estou usando são "% DATE: ~ 0,2%" Eu tentei "% DATE: ~ 0,2% -1" e "% DATE: ~ 0,2% -1" e o texto completo no arquivo de lote é "mover [-Y] * .pdf Relatórios mensais P: \ CBO \ Physician \% DATE: ~ 6,4% -% DATE: ~ 0,2% -1"

    
por ThaddeusTG 27.10.2010 / 21:39

2 respostas

1

Sua seleção de personagem exige que o formato de data seja semelhante a "MM-DD-AAAA". Esse comando recupera o número do mês atual e subtrai um e o salva em uma variável chamada prevmonth . Também subtrai um do ano se o mês anterior for dezembro:

set /a prevmonth=%DATE:~0,2% - 1
set yearprevmo=%DATE:~6,4%
if %prevmonth% equ 0 set /a yearprevmo=%yearprevmo%-1 & set prevmonth=12
move -Y *.pdf "P:\CBO\Physician Monthly Reports\%yearprevmo%-%prevmonth%"

Observe as aspas, pois há espaços no nome do seu diretório.

    
por 28.10.2010 / 02:16
1
C:\>move /Y \your Network server\PROD\PM\FileArchive11*.txt \your Network server\PROD\PM\FileArchive\Documents
    
por 10.10.2012 / 00:50