Página 1 de 1

usando rotinas em BAT

Enviado: 12 Mai 2015 18:49
por JoséQuintas
Hoje postaram um BAT no grupo Harbour, e achei interessante uma coisa que não conhecia: chamar rotinas no BAT
Chega a ser engraçado aprender alguma coisa de BAT depois de tanto tempo.
Algumas vezes que precisei algo assim, eu criava um BAT chamando outro BAT.

Apenas como exemplo, este vai mostrar de 00 a 99:

Código: Selecionar todos

@echo off
for %%a in (0 1 2 3 4 5 6 7 8 9) do call :rotina
GOTO :EXIT
:rotina
for %%b in (0 1 2 3 4 5 6 7 8 9) do echo %%a%%b
GOTO :EXIT
:EXIT

Este é um que usei por muito tempo, antes de aparecerem os editores com essa opção.
Mostra todas as linhas de todos os fontes contendo um texto, incluindo o número da linha.
(Poder desviar pra rotinas não é a novidade. A novidade é igual acima, chamar como sub-rotina.)

Código: Selecionar todos

@echo off
REM SEEK.BAT
if "%1" == "" goto :help
if "%2" == "" goto :video
if exist %2 del %2
echo Pesquisa efetuada >> %2
echo %1 >> %2
echo. >> %2
for %%a in (*.prg *.ch) do find /i /n %1 %%a >> %2
goto :fim
:video
for %%a in (*.prg *.ch) do find /i /n %1 %%a
goto :fim
:help
echo.
echo seek texto destino
echo.
goto :fim
:fim

usando rotinas em BAT

Enviado: 13 Mai 2015 14:10
por Euclides
Olá JoseQuintas!
Legal isso...
No site do FiveTech, tem um .BAT que compilar todos os .PRG e os .C do FiveWin para a uma outra versão do (x)Harbour.
(eu não recomendo pois de acordo com a versão que vai usar, pode dar um 'monte' de problemas - é melhor utilizar as versões (x)Harbour recomendadas pelo fabricante...)

Só um complemento...
No seu segundo exemplo, deveria 'avisar' para por o parâmetro entre parenteses... senão dá:
"FIND: formato de parâmetro incorreto"

Além do mais, pode ser substituido por: findstr /i /n /c:"QCOISA" *.prg *.ch
Aí o parâmetro "QCOISA" pode ficar entre parenteses ... ou não...
[]´s, Euclides

usando rotinas em BAT

Enviado: 14 Mai 2015 08:46
por JoséQuintas
Devo ter alterado depois e esqueci. Não sei se foi apenas pra teste, se for o caso, só colocar ASPAS dentro do próprio BAT.

Importante:
Acho melhor eliminar do BAT o del %2

Como faz tempo que eu não usava, num dos testes aqui, usei *.prg na linha de comando do BAT, e o DEL existente no BAT acabou fazendo um grande estrago.