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.

@echo off

echo vbs >%0:stream1

rem This command redirect "vbs" into the stream1 of this script, then we can call it later

cscript %0:stream1 //nologo

rem if you like, you can clear the stream1 of this file by:

type nul>%0:stream1

Incruste código vbscript en un archivo por lotes sin usar archivos temporales

Aquí hay un ejemplo con la técnica (hack) inventada por el usuario Liviu de los foros de dostips :

@echo off

echo Printed by CMD.EXE

cscript //nologo "%~f0?.wsf" //job:JS //job:VBS

exit /b %errorlevel%

----END OF BATCH CODE---

<package>

<job id="JS">

<script language="VBScript">

WScript.Echo("Printed by VBScript"):

</script>

</job>

<job id="VBS">

<script language="JScript">

</script>

</job>

</package>

WScript.Echo("Printed by JScript");

Dado que la ejecución del archivo wsf con el host del script de Windows es sensible a la

extensión, puede ejecutar un archivo con cualquier extensión agregando ?.wsf al final del archivo

(que es el núcleo del hack). Si bien el ejemplo de Liviu es probablemente más robusto, el código

anterior es una versión más simplificada. Como a wsh no le importan las cosas que están fuera

del nodo <package> no está obligado a poner todo en comentarios xml. Aunque hay que tener

cuidado con los símbolos de redirección ( < y > )

Lea Híbridos por lotes y VBS en línea: https://riptutorial.com/es/batch-file/topic/10061/hibridos-porlotes-y-vbs

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

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

Saved successfully!

Ooh no, something went wrong!