usando rotinas em BAT

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

usando rotinas em BAT

Mensagem 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
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Euclides
Usuário Nível 3
Usuário Nível 3
Mensagens: 154
Registrado em: 12 Mai 2007 14:07
Localização: São Paulo, Capital

usando rotinas em BAT

Mensagem 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
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

usando rotinas em BAT

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder