2006-12-16 - BATCH SCRIPT!!!

16 de dezembro

BATCH SCRIPT!!!

Batch scripts são arquivos texto com extensão bat (*.bat), são pequenos programas interpretados pelo prompt do ms-dos, são muito usados para automatizar pequenas tarefas do dia-a-dia, e por este motivo mesmo não existem tantas funções práticas para elaborar problemas complexos... mesmo assim com um pouco de criatividade pode-se fazer maravilhas com ele, lógico que não é nada que se compare com os bash scripts do *nix. A documentação não é muito boa... muito básica e os bons tópicos são espalhados pela internet. Desde modo fica difícil saber o que pode e o que não pode ser feito com batch script.
Neste artigo vou publicar minhas rotinas de batch script que podem ser úteis em diversas situações. Todos os scripts são feitos em windows xp, que usa o padrão NT para prompt do ms-dos... sendo assim, talvez alguns detalhes não funcionem em Windows 9x/ME, daí é você testar e usar a criatividade .
Coisas básicas que são difíceis de encontrar:
* Como pegar uma parte da variável (substring):
caso seja um parâmetro tipo %1 ou %%i, sete este valor para uma variável temporária:
set var=variavel_a_testar
para pegar o left, por exemplo as primeiras 5 letras da variavel use %var:~0,5%
para pegar o mid, por exemplo a string da posição 9 até a 11 "_a_" letras da variavel use %var:~8,3%
para pegar o right, por exemplo as ultimas 6 letras da variavel use %var:~-6%
isto funciona muito bem pra pegar datas horas ou qualquer tipo de valor de variavel de ambiente também.
Perguntas e respostas que eu tive que codificar por mim mesmo:
* Como conseguir a largura de um parâmetro ou variável em um arquivo .bat:
C:\WORKSP~2>more len.bat
:: December 16, 2006 by Glaudiston Gomes da Silva
@echo off
set Len=-1
:next_for
if "%Len%"=="-1" (
for /L %%i in (1,1,4096) do (
echo @echo off > getLen.bat
echo SET s=%1>>getLen.bat
echo if "%%s:~0,%%i%%"=="%%s%%" echo Len=%%i>>getLen.bat
getlen.bat | find /c "Len" | find "0" > null
IF ERRORLEVEL 1 (
echo Length=%%i
set Len=%%i
goto next_for
)
)
)
del getlen.bat
C:\WORKSP~2>len palavra_a_testar
Length=16
C:\WORKSP~2>set len
Len=16
De tempo em tempo vou atualizar este tópico...
see'ya!

Comentários

Postagens mais visitadas