我的编程空间,编程开发者的网络收藏夹
学习永远不晚

有哪些让批处理被wsh解析的优点

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

有哪些让批处理被wsh解析的优点

本篇内容介绍了“有哪些让批处理被wsh解析的优点”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

示例批处理:test.bat
Code: 

复制代码 代码如下:

:On Error Resume Next  
Sub bat  
echo off & cls  
echo Batching_codez_here_following_vbs_rules & pause  
start wscript -e:vbs "%~f0"  
Exit Sub  
End Sub  
MsgBox "This is vbs" 


上面的代码巧妙利用 bat 和 vbs 的语法特征,让同一个文件,被 cmd.exe 识别成批处理,让 wscrpt.exe 识别成 vbs,并且同时符合两者的语法,并且保证都没有错误,保证两者的高度兼容。就叫它 bat/vbs 复合编程吧 (Hybird Programming)

粗略解释下代码 
:On Error Resume Next 

cmd.exe 识别成一段注释
wscript.exe 这样识别, : 在vbs语法里代表分行,然后 On Error Resume Next,也就是让WSH忽略一些错误

引用: 
start wscript -e:vbs "%~f0" 

cmd.exe 识别成:启动 wscript.exe ,其参数是: 
① -e:vbs 设定以vbs解析文件自身
② "%~f0" 指这个批处理本身。

wscript.exe 把这句识别成:调用一个叫 start 的函数,函数参数是 wscript 这个变量,然后用这个函数的结果来 减去 e。接下来是又是一个 : ,分行,然后又是调用一个名叫 vbs 的函数,参数是字符: "%~f0"

这句是最为精巧的,因为它成功的让 vbs 引擎解释了一段批处理,而且没有错误!当然这些 start()、vbs()函数是不存在的,但是会被 cmd.exe 当成命令执行。为什么不用 wscript //e:vbs "%~f0" 来执行呢?vbs解析会出错的,呵呵

这段代码的核心思想已经介绍完毕了。下面,为了让 批处理 以vbs调用其自身后,马上退出,我们需要 exit 或者 goto :eof,但是 goto call exit 在vbs又是一个关键词,所以我们只能用符合 vbs 语法的 exit sub,所以我们在第二句加一个
sub bat,其实 cmd.exe 寻找了一个叫 sub.exe 的命令,但是这个命令是不存在的,cmd.exe 跳过。然后在 6、7 句加一个 exit sub 以及 end sub,让 批处理结束,同时又符合 vbs 的语法

那个 echo off & cls ,批处理的意思就是相当于 @echo off ,但是 vbs 不认 @ 符号,所以改成 echo off & cls , vbs 可以解析为,调用一个叫 echo() 的函数,参数为 off & cls ,也就是两个字符串 off 和 cls 相加 

Well,接下来,你可以自由地在批处理中书写vbs脚本了,效率和真正的vbs一样高!

这段代码的好处是:不用生成临时文件。其实用 echo 或者 more 或者 find 来生成临时vbs很浪费系统资源的,用我写的这段代码,就完全免去了这些麻烦。直接混合编程,以 start wscript -e:vbs "%~f0" 为界限,上面写 批处理,下面写 vbs,并行不悖!


大家有更好的想法可以跟贴讨论呀

=============================================================

allyesno :%~fI - 将 %I 扩充到一个完全合格的路径名

另外如果用到shell中的话 写vbs也要用到echo的 在这种情况没有省系统资源的说法 除非 copy con 就可以写 那就直接写任意脚本文件就行了

“有哪些让批处理被wsh解析的优点”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

有哪些让批处理被wsh解析的优点

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

有哪些让批处理被wsh解析的优点

本篇内容介绍了“有哪些让批处理被wsh解析的优点”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!示例批处理:test.bat Code: 复制
2023-06-08

如何让批处理被wsh解析

小编给大家分享一下如何让批处理被wsh解析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!示例批处理:test.bat 代码如下::On Error Resume
2023-06-09

C++ 函数异常处理的优点有哪些?

c++++ 函数异常处理的优点包括:代码清晰可读,将错误处理逻辑从常规代码中分离。提高程序健壮性,通过捕获和处理异常防止程序崩溃。改进错误消息,异常携带详细错误信息有助于调试和识别错误根源。扩展性强,允许在运行时处理错误,便于动态添加或修改
C++ 函数异常处理的优点有哪些?
2024-04-15

C++在游戏图形处理方面的优缺点有哪些?

c++++ 在游戏图形处理中的优点包括高性能、低级内存管理、丰富的库支持和跨平台开发能力。缺点有复杂性、容易出错的内存管理、缺乏垃圾回收和开发速度慢。代码段展示了如何使用 opengl 和 c++ 创建一个简单的 3d 立方体。C++ 在游
C++在游戏图形处理方面的优缺点有哪些?
2024-05-13

物理服务器和云服务器的优缺点有哪些不同之处

物理服务器:物理服务器是指在物理设备上运行的服务器,通常由计算机硬件设备、网络设备、存储设备等组成。物理服务器的主要优点是处理能力强,可扩展性好,能够容纳大量的并发请求,能够处理高峰期的访问量。相比之下,云服务器则是指将物理服务器部署在云服务提供商的网络上,客户可以通过互联网访问云服务器提供的资源,而不必受地理位置和硬
物理服务器和云服务器的优缺点有哪些不同之处
2023-10-28

如何使用PHP进行XML解析和处理?(PHP解析和处理XML数据的方式有哪些?)

本文介绍了PHP解析和处理XML数据的多种方法,包括:DOMDocument类:使用DOMAPI表示XML文档,提供树状表示。SimpleXML类:使用对象表示XML文档,使用点语法访问元素和属性。XMLReader类:按顺序遍历XML文档,逐个读取元素。XMLWriter类:创建和写入XML文档,逐部构建文档。XPath:XML查询语言,用于选择XML文档中的节点。第三方库:如XML-RPC、XMLsec、PEARXML_Parser。选择合适的方法取决于特定需求,如修改需求、解析速度、逐个读取、创建和
如何使用PHP进行XML解析和处理?(PHP解析和处理XML数据的方式有哪些?)
2024-04-02

优化DNS解析和拆分域名并让网站打开速度更快的技巧有哪些

优化DNS解析和拆分域名并让网站打开速度更快的技巧有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。其他不再赘述,发挥二的性格,我们直奔主题。用户打开网站的整个流程中,DNS
2023-06-12

选择微软大数据解决方案处理网站大数据的优势有哪些

这篇文章主要介绍“选择微软大数据解决方案处理网站大数据的优势有哪些”,在日常操作中,相信很多人在选择微软大数据解决方案处理网站大数据的优势有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”选择微软大数据解决
2023-06-10

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录