08.02.2022 Views

batch-file-es Windows

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

call :stuff 123 var1

rem More code...

:stuff <arg1> <arg2>

setlocal

set importantvar=%~1

echo Writing some stuff into %~2!

endlocal

set %~2=some stuff

setlocal

set importantvar=junk

endlocal

goto :eof

Esto utiliza la función básica, setlocal y endlocal y argumentos para crear una pequeña función

extraña.

Funciones anónimas en archivos por lotes.

La técnica de funciones anónimas utiliza el hecho de que el comando CALL usa GOTO internamente

cuando se llama a la subrutina y se abusa de la impresión de mensajes de ayuda con la

expansión doble variable :

@echo off

setlocal

set "anonymous=/?"

call :%%anonymous%% a b c 3>&1 >nul

if "%0" == ":%anonymous%" (

echo(

echo Anonymous call:

echo %%1=%1 %%2=%2 %%3=%3

exit /b 0

)>&3

Puede llamar a una función anónima solo si se define después del contexto de CALL (o después de

terminar los paréntesis si la CALL se ejecuta entre paréntesis). No se puede llamar desde un script

externo , pero es una llamada de función más lenta de lo normal.

Llamando funciones desde otro archivo por lotes

Permite tener el siguiente archivo llamado library.cmd :

@echo off

echo -/-/- Batch Functions Library -/-/-

:function1

echo argument1 - %1

goto :eof

Para ejecutar solo : function1 sin el código del resto del archivo, debe poner una etiqueta :

function1 en el llamador y usarlo así:

https://riptutorial.com/es/home 50

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!