Páginas

Mostrar mensagens com a etiqueta Batch file. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta Batch file. Mostrar todas as mensagens

segunda-feira, 9 de dezembro de 2019

segunda-feira, 9 de dezembro de 2019

Batch: Listagem dos ficheiros executáveis num directório (DIREXE.BAT)

Um "batch file" é um ficheiro de texto, contendo uma lista de comandos, executada sequencialmente, e de forma automática, pelo interpretador de linha de comando do DOS. Trata-se, portanto, de uma ferramenta útil para, por exemplo, executar tarefas repetitivas, processar logs, efectuar backups automáticos, ou carregar programas. O Planeta irá, pontualmente, publicar alguns ficheiros .BAT que outrora já nos foram úteis (ou aos leitores caso queiram partilhar os seus "batch files")!

Começamos pelo DIREXE - ficheiro “batch” lista todos os ficheiros executáveis (extensões .EXE, .COM e .BAT) dentro de um directório. Recorremos ao comando FOR do DOS para visualizar o nome de cada elemento do conjunto de ficheiros com extensão “exe”, “com” e “bat”. O ficheiro pode ser obtido aqui.




DIREXE.BAT:
@echo off

if "%1"=="?" goto usage

set pname=.
if "%1"=="" goto direxec
set pname=%1

:direxec
for %%f in (%pname%\*.exe %pname%\*.com %pname%\*.bat) do echo %%f
goto end

:usage
echo.
echo Usage: DIREXE [pathname] [?]
echo.

:end

segunda-feira, 25 de novembro de 2019

segunda-feira, 25 de novembro de 2019

Batch: Adicionar caminho (ADDPATH.BAT)

O ficheiro ADDPATH permite-nos adicionar vários caminhos diferentes à variável PATH, através de parâmetros (pode-se passar até 9 parâmetros num ficheiro “batch”). 


Observe-se o comando SHIFT do DOS que em conjunto com um ciclo possibilita o tratamento de cada um dos parâmetros (fazendo um "shift" do valor do parâmetro %2 para o parâmetro %1, do %3 para o %2 e assim por adiante, descartando o valor do parâmetro %1) até que todos tenham sido tratados. O ficheiro pode ser obtido aqui.



ADDPATH.BAT:
@echo off

if "%1"=="" goto usage
set tmpvar=
if "%path%"=="" goto cycle
set tmpvar=%path%;

:cycle
set tmpvar=%tmpvar%%1
shift
if "%1"=="" goto addpath
set tmpvar=%tmpvar%;
goto cycle

:addpath
set path=%tmpvar%
set tmpvar=
echo %path%
echo.
goto end

:usage
echo.
echo Usage: ADDPATH [pathname...]
echo.

:end