将 vbscript 代码嵌入到批处理文件中而不使用临时文件
以下是 dostips 论坛用户 Liviu 发明的技术(hack)的示例 :
@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">
WScript.Echo("Printed by JScript");
</script>
</job>
</package>
由于运行带有 Windows 脚本主机的 wsf
文件是扩展敏感的,你可以通过在文件末尾添加 ?.wsf
来运行任何扩展名的文件(这是黑客的核心)。虽然 Liviu 的例子可能更强大,但上面的代码更简化版本。由于 wsh 并不关心 <package>
节点之外的事情,因此你没有义务将所有内容放在 xml 注释中。虽然要注意重定向符号(<
和 >
)