Arquivo de lote é executado exe, cria arquivo, salva e postar em nova pasta todas as noites

0

Este foi um repost, eu tive em troca de pilha e foi dito que era mais adequado aqui para o site do superusuário. Não tenho certeza da diferença. Visitante pela primeira vez em qualquer site ... mas aqui vai. ~ Felicidades

Eu sou um novato na melhor das hipóteses lutando enquanto meu trabalho está evoluindo e o proprietário não fornecerá treinamento. Assim, eu tenho vários códigos de arquivos em lote que são lidos como este ou muito semelhantes, em última análise, executando um relatório noturno e soltando o arquivo pdf em uma unidade compartilhada para mim.

Meu lote é assim e tem cinco relatórios ... Eu digitei dois abaixo.

R:\Simply\Simply.exe /u:username /p:password /rpt:"Daily Report" /pgp:Custom /pgs:pdf /el:R:\reports\str001\DailyReports /s

R:\Simply\Simply.exe /u:username /p:password /rpt:"Negative Report" /pgp:Custom /pgs:pdf /el:R:\reports\str001\DailyReports /s

Toda manhã eu tenho que criar uma nova pasta com a data de ontem e mover todos os arquivos que foram gerados para esta pasta.

Devo observar que esse lote precisa ser executado no winxp e win7, por isso, o namoro pelo que li precisa levar isso em consideração.

Eu li e tentei vários posts aqui. Não tenho certeza onde colocar o código, como inseri-lo atrás do meu código existente, na frente de cada linha. Mais uma vez, novato procurando algum conselho. Inferno, eu até tentei rodar um novo arquivo .bat apenas criando um novo código de pasta baseado em outros posts aqui ... e eu não consegui fazer com que eles funcionassem. Eu posso ligá-los aqui, mas isso parece uma perda de tempo. Confie em mim, eu tentei resolver isso .... Eu gosto de resolver e aprender, mas estou perdido. Por favor ajude

Gostaria que o arquivo em lote criasse uma pasta datada com a data de ontem no formato AAAA_MM_DD e salve os arquivos na pasta mencionada automaticamente quando for executada, em vez de eu precisar movê-los diariamente repetidamente.

Nota: Se a data existir, não quero sobrescrever os dados, mas gostaria de soltar os arquivos nesse local.

    
por MissChris 13.08.2015 / 19:54

1 resposta

0

Esta solução assume que seus relatórios são PDFs e que são os únicos PDFs na sua pasta de relatórios. Além disso, algumas dessas soluções foram adaptadas de:

https://stackoverflow.com/questions/20796749/re-naming-a-file-name-to-include-yesterdays-date-using-command-prompt/20798129#20798129

Novo conteúdo do arquivo em lotes:

@ECHO OFF

R:\Simply\Simply.exe /u:username /p:password /rpt:"Daily Report" /pgp:Custom /pgs:pdf /el:R:\reports\str001\DailyReports /s

R:\Simply\Simply.exe /u:username /p:password /rpt:"Negative Report" /pgp:Custom /pgs:pdf /el:R:\reports\str001\DailyReports /s

... (more of your report stuff goes here)

SET day=-1
ECHO >"%temp%\%~n0.vbs" s=DateAdd("d",%day%,now) : d=weekday(s)
ECHO >>"%temp%\%~n0.vbs" WScript.Echo year(s)^& right(100+month(s),2)^& right(100+day(s),2)
FOR /f %%a IN ('cscript /nologo "%temp%\%~n0.vbs"') DO SET "result=%%a"
DEL "%temp%\%~n0.vbs"
SET "YYYY=%result:~0,4%"
SET "MM=%result:~4,2%"
SET "DD=%result:~6,2%"
SET "date-yesterday=%yyyy%_%mm%_%dd%"

IF NOT EXIST %date-yesterday%\ (
    MD %date-yesterday%
)

MOVE *.PDF %date-yesterday%
    
por 13.08.2015 / 20:03