Linhas de comando do DOS Movem arquivos para pastas nomeadas no mês anterior

Linhas de comando do DOS Movem arquivos para pastas nomeadas no mês anterior

Estou tentando criar uma tarefa no Agendador de Tarefas que moverá automaticamente alguns arquivos PDF para outra pasta com base na data dos arquivos PDF do mês anterior. O problema que estou tendo é que não consigo descobrir como fazer com que a linha de comando volte para o mês anterior. Estou usando a mesma coisa para criar a pasta para começar, mas a tarefa está configurada para ser executada no final do que seria considerado o mês anterior. Assim, por exemplo, uma tarefa executada em outubro para criar a pasta para o mês atual 2010-10 e outra executada em novembro após a compilação dos PDFs que os moverá 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 em o arquivo em lote é "move [-Y] *.pdf P:\CBO\Physician Monthly Reports\%DATE:~6,4%-%DATE:~0,2% -1"

Responder1

A seleção de caracteres exige que o formato da data seja "MM-DD-AAAA". Este comando recupera o número do mês atual e subtrai um e 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.

Responder2

C:\>move /Y \\your Network server\PROD\PM\FileArchive\2011*.txt \\your Network server\PROD\PM\FileArchive\Documents

informação relacionada