Batch-Satti
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Batch-Satti

Você não está conectado. Conecte-se ou registre-se

Backup por ftp com batch problema com a data

2 participantes

Ir para baixo  Mensagem [Página 1 de 1]

thon



Amigos estou tendo problema com um bat que funcionava normalmente e de forma inexplicável deixou de funcionar.
Vou explicar a rotina que tinha que fazer e automatizei com o bat abaixo porem deixou de funcionar. Quem puder resolver o problema e melhorar o bat agradeço.
Vamos a rotina. A programação de uma radio e gravada automaticamente em um determinado diretório os arquivos são no formato mp3 com o nome (radio.aaaammdd.xx.mp3). O bat tem que fazer é a cada dia pegar os arquivos do dia anterior mover para uma pasta com o padrão mes_ano (mm_aaaa) e dentro dessa pasta ser criar uma com o nome dia (dd) e depois enviar para um servidor [Tens de ter uma conta e sessão iniciada para poderes visualizar este link] Criei uma variável ontem que atribuía o valor de hoje -1 só que o valor que o sistema estar atribuindo e 0-1 antes funcionava certinho.

Código:

@echo off
set dia=%date:~4,2%
set m_es=%date:~7,2%
set /a ontem=dia-1
set m_ant=%date:~7,2%
if %ontem% lss 10 set ontem=0%ontem%
if %m_ant% lss 10 set m_ant=%date:~8,1%
set /a m_ant=m_ant-1
set ano=%date:~10,4%
set an1=%date:~12,2%
set dire=%m_es%_%ano%
IF "%ontem%"=="00" (
   IF "%m_ant%"=="1"  (
      Set /a ontem=31
      set dire=0%m_ant%_%ano%
      if %m_ant% lss 10 set m_es=0%m_ant%
   )
   IF "%m_ant%"=="2" (
      set /a ontem=28
      set dire=0%m_ant%_%ano%
         if %m_ant% lss 10 set m_es=0%m_ant%
   )   
   IF "%m_ant%"=="3" (
      set /a ontem=31
      set dire=0%m_ant%_%ano%
      if %m_ant% lss 10 set m_es=0%m_ant%
   )
   IF "%m_ant%"=="4" (
      set /a ontem=30
      set dire=0%m_ant%_%ano%
         if %m_ant% lss 10 set m_es=0%m_ant%
   )
   IF "%m_ant%"=="5" (
      set /a ontem=31
      set dire=0%m_ant%_%ano%
         if %m_ant% lss 10 set m_es=0%m_ant%
   )
   IF "%m_ant%"=="6" (
      set /a ontem=30
      set dire=0%m_ant%_%ano%
         if %m_ant% lss 10 set m_es=0%m_ant%
   )
   IF "%m_ant%"=="7" (
      set /a ontem=31
      set dire=0%m_ant%_%ano%
         if %m_ant% lss 10 set m_es=0%m_ant%
   )
   IF "%m_ant%"=="8" (
      set /a ontem=31
      set dire=0%m_ant%_%ano%
         if %m_ant% lss 10 set m_es=0%m_ant%
   )
   IF "%m_ant%"=="9" (
      set /a ontem=30 
      set dire=0%m_ant%_%ano%
         if %m_ant% lss 10 set m_es=0%m_ant%
   )
   IF "%m_ant%"=="10" (
      set /a ontem=31
      set dire=%m_ant%_%ano%
      set m_es=%m_ant%
   )
   IF "%m_ant%"=="11" (
      set /a ontem=30
      set dire=%m_ant%_%ano%
      set m_es=%m_ant%
   )
   IF "%m_ant%"=="0" (
      set /a ontem=31
      set /a ano=ano-1
      set dire=%m_ant%_%ano%
      set m_es=%m_ant%
   )
)   
set arq=arquivo.%an1%%m_es%%ontem%*
IF NOT EXIST %dire% mkdir %dire%
MOVE %arq% %dire%
cd %dire%
IF NOT EXIST %ontem% mkdir %ontem%
MOVE %arq% %ontem%
cd..
IF EXIST script.txt del script.txt
>>script.txt echo open [Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
>>script.txt echo user [Tens de ter uma conta e sessão iniciada para poderes visualizar este link] senha
>>script.txt echo prompt
>>script.txt echo binary
>>script.txt echo mkdir %dire%
>>script.txt echo cd %dire%
>>script.txt echo mkdir %ontem%
>>script.txt echo cd %ontem%
>>script.txt echo mput e:\censura\%dire%\%ontem%\*.mp3
>>script.txt echo close
>>script.txt echo quit
ftp -n < script.txt

Boss-Head

Boss-Head

@echo off
for %%A in (%date:~-10%) do (set dt=%%A)
echo data atual %date:~-10%
set /a day=%dt:~0,2%
echo dia atual %day%
set /a day=%day%-1
echo dia anterior %day%
pause


VEJA SE O DIA ANTERIOR APARECE CERTO ?
COM ESSE SCRIPT !

Boss-Head

Boss-Head

melhor ainda veja esse !
Código:
@echo off
mode con cols=65 lines=19
color 0A
for %%A in (%date:~-10%) do (set dt=%%A)
set day=%dt:~0,2%
if %day% lss 10 set day=%dt:~1,1%
set /A day2=%day:~0,2%-1
if %day2% lss 10 set /a day2=%dt:~1,1%-1 & set day2=0%day2%
if %day% lss 10 set day=0%dt:~1,1%
set month=%dt:~3,2%
if %month% lss 10 set month=0%dt:~4,1%
ECHO DIA %day%
ECHO DIA ANTERIOR %day2%
ECHO MES %month%

pause

Conteúdo patrocinado



Ir para o topo  Mensagem [Página 1 de 1]

Permissões neste sub-fórum
Não podes responder a tópicos