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.
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