将 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 注释中。虽然要注意重定向符号(<>