Como criar BAT complexos para DOS

As vezes precisamos criar BATs mais complexos, seja para backup ou para cópia de informações. Navegando na internet as vezes encontramos em alguns foruns a informação necessária, mas, é muito vasta e diversificada, portanto, resolvi registrar aqui neste post algumas funcionalidades importantes.

Informações contendo data e acessando um endereço FTP.
Modelo encontrado em http://eng.registro.br/pipermail/gter/2010-January/028798.html

@echo off
For /F "tokens=1,2,3,4 delims=/ " %%A in ('Date /t') do @(
 Set semana=%%A
 Set dia=%%B
 Set mes=%%C
 Set ano=%%D
)
echo Semana = %semana%
echo Dia = %dia%
echo Mes = %mes%
echo Ano = %ano%
echo open 10.0.1.250> tmp.ftp
echo root>> tmp.ftp
echo ******* >> tmp.ftp
echo get /partition/bandwidthd/log.1.0.cdf
F:\logs\trafego\log\diario\%dia%-%mes%-%ano%.txt >> tmp.ftp
echo get /partition/bandwidthd/log.2.0.cdf
F:\logs\trafego\log\semanal\%semana%.txt >> tmp.ftp
echo get /partition/bandwidthd/log.3.0.cdf
F:\logs\trafego\log\mensal\%mes%-%ano%.txt >> tmp.ftp
echo get /partition/bandwidthd/log.4.0.cdf
F:\logs\trafego\log\anual\%ano%.txt >> tmp.ftp
echo quit >> tmp.ftp
ftp -s:tmp.ftp
del tmp.ftp

Exemplo, criado por mim, para obtenção da versão do sistema, dentro de uma biblioteca .pas (arquivo texto) Note que neste caso o BAT vai pegar informações de dentro de um arquivo texto e colcoar numa variável que pode posteriormente ser usada da forma que se desejar.

Nosso bat vai pegar apenas o seguinte texto: "v2.8.10"

-> biblioteca.pas -----------
codigo
codigo
codigo
// Versao do sistema: Versao=/v2.8.10/
codigo
codigo
codigo


-> versao.bat ---------------

@echo OFF FOR /F "tokens=1,2,3 delims=/ " %%A in ('GREP "Versao=/v" biblioteca.pas') do @( 
    Set varia=%%A
    Set versao=%%B 
    Set info=%%B 

@echo %versao%

Algo similar em Linux seria assim:

#-------------------------------------------
#
# Bash         - versao.sh
# Programador  - Valmor Pereira Florez
#---------------------------------------------------
#!/bin/bash
# Pega a versao do VABIBL2001.pas
var=$(cat /mnt/projetos/local/lucrativo/comum/VABIBL2001.pas |grep 'Versao=' |cut -c 27-33)
echo $var



Comentários

Postagens mais visitadas