返回顶部
首页 > 资讯 > 精选 >如何让批处理被wsh解析
  • 276
分享到

如何让批处理被wsh解析

2023-06-09 22:06:10 276人浏览 薄情痞子
摘要

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

小编给大家分享一下如何让批处理被wsh解析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

示例批处理:test.bat 

代码如下:

: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解析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: 如何让批处理被wsh解析

本文链接: https://lsjlt.com/news/258119.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何让批处理被wsh解析
    小编给大家分享一下如何让批处理被wsh解析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!示例批处理:test.bat 代码如下::On Err...
    99+
    2023-06-09
  • 有哪些让批处理被wsh解析的优点
    本篇内容介绍了“有哪些让批处理被wsh解析的优点”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!示例批处理:test.bat Code:&nb...
    99+
    2023-06-08
  • 如何理解cnct.batch批处理
    本篇内容主要讲解“如何理解cnct.batch批处理”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何理解cnct.batch批处理”吧!不要忘记 fdisk /mbr 不知在SATA...
    99+
    2023-06-09
  • 如何理解批处理编程
    本篇内容介绍了“如何理解批处理编程”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  批处理文件是无格式的文本文件,它包含一条或多条命令。它的...
    99+
    2023-06-09
  • 如何理解批处理版的SC
    这篇文章主要介绍“如何理解批处理版的SC”,在日常操作中,相信很多人在如何理解批处理版的SC问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何理解批处理版的SC”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
    99+
    2023-06-10
  • 如何用批处理写的后门实现永不被杀
    本篇内容主要讲解“如何用批处理写的后门实现永不被杀”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何用批处理写的后门实现永不被杀”吧!代码如下:  @echo off&nbs...
    99+
    2023-06-09
  • 批处理中如何实现预处理
    这篇文章主要为大家展示了“批处理中如何实现预处理”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“批处理中如何实现预处理”这篇文章吧。一、预处理究竟要做什么? 根据我的经验,预处理要做的是变量值的替...
    99+
    2023-06-08
  • 如何理解批处理命令目录跳转
    这篇文章主要讲解了“如何理解批处理命令目录跳转”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何理解批处理命令目录跳转”吧!当我们需要处理不同路径下的文件的时候,很可能需要切换目录,这个时候...
    99+
    2023-06-08
  • CHM如何实现文档解包批处理
    这篇文章主要介绍CHM如何实现文档解包批处理,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!HH的脾气是目标文件夹路径不支持带空格或引号,所以变复杂了点,否则一行命令足矣 其他的代码没啥难度,重在实用 批处理代码如下:...
    99+
    2023-06-08
  • 如何处理dedecms被挂马
    本篇文章为大家展示了 如何处理dedecms被挂马,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。如何处理dedecms被挂马平常挂马的都了解一些体系尝试,所以不会再生成的静态页面上挂马,一般都是了解...
    99+
    2023-06-07
  • windows批处理文件打不开如何解决
    如果无法打开Windows批处理文件(.bat文件),可能是由于以下原因:1. 文件关联错误:确保计算机上已正确关联.bat文件类型...
    99+
    2023-09-05
    windows
  • 如何批处理ren重命名
    这篇文章主要为大家展示了“如何批处理ren重命名”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何批处理ren重命名”这篇文章吧。批处理之ren命令-可批量修改文件名1.批处理批量修改文件后缀名...
    99+
    2023-06-08
  • Hibernate如何实现批量处理
    这篇文章给大家分享的是有关Hibernate如何实现批量处理的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Hibernate批量处理其实从性能上考虑,它是很不可取的,浪费了很大的内存。从它的机制上讲,Hibern...
    99+
    2023-06-17
  • ps如何批量处理图片
    本文小编为大家详细介绍“ps如何批量处理图片”,内容详细,步骤清晰,细节处理妥当,希望这篇“ps如何批量处理图片”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。ps动作批量处理图片:首先进入ps软件,然后点击窗口,...
    99+
    2023-07-02
  • 如何使用批处理参数
    这篇文章给大家分享的是有关如何使用批处理参数的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。可以在批处理文件内的任何地方使用批处理参数,以提取有关环境设置的信息。 Cmd.exe 提供批处理参数扩展变量(...
    99+
    2023-06-09
  • 批处理如何计算天数
    小编给大家分享一下批处理如何计算天数,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!代码一、:: DateDel2.bat - 删除指...
    99+
    2023-06-09
  • 批处理如何随机取值
    这篇文章主要为大家展示了“批处理如何随机取值”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“批处理如何随机取值”这篇文章吧。出题目的: 掌握利用random进行随机取值技巧 解题要求: 代码通用、...
    99+
    2023-06-08
  • mysql表被锁了如何处理
    当MySQL表被锁定时,可以尝试以下方法来处理: 查看当前锁定表的情况:可以使用SHOW OPEN TABLES命令来查看当前表...
    99+
    2024-04-09
    mysql
  • 让电脑急速如飞的七个小技巧(批处理)
    以下是七个可以让电脑急速如飞的批处理小技巧:1. 清理临时文件:批处理可以自动清理临时文件夹中的无用文件,使用命令"del...
    99+
    2023-09-05
    电脑
  • 如何使用批处理for命令
    这篇文章主要讲解了“如何使用批处理for命令”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用批处理for命令”吧!FOR这条命令基本上都被用来处理文本,但还有其他一些好用的功能!看看他...
    99+
    2023-06-08
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作