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

如何让批处理被wsh解析

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

北京

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

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

看不清楚,换张图片

免费获取短信验证码

如何让批处理被wsh解析

小编给大家分享一下如何让批处理被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解析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

免责声明:

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

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

如何让批处理被wsh解析

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

下载Word文档

猜你喜欢

如何让批处理被wsh解析

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

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

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

如何理解cnct.batch批处理

本篇内容主要讲解“如何理解cnct.batch批处理”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何理解cnct.batch批处理”吧!不要忘记 fdisk /mbr 不知在SATA硬盘是否正
2023-06-09

如何理解批处理编程

本篇内容介绍了“如何理解批处理编程”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  批处理文件是无格式的文本文件,它包含一条或多条命令。它的
2023-06-09

如何理解批处理版的SC

这篇文章主要介绍“如何理解批处理版的SC”,在日常操作中,相信很多人在如何理解批处理版的SC问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何理解批处理版的SC”的疑惑有所帮助!接下来,请跟着小编一起来学习吧
2023-06-10

如何用批处理写的后门实现永不被杀

本篇内容主要讲解“如何用批处理写的后门实现永不被杀”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何用批处理写的后门实现永不被杀”吧!代码如下: @echo off @attrib +s +
2023-06-09

如何理解批处理命令目录跳转

这篇文章主要讲解了“如何理解批处理命令目录跳转”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何理解批处理命令目录跳转”吧!当我们需要处理不同路径下的文件的时候,很可能需要切换目录,这个时候
2023-06-08

CHM如何实现文档解包批处理

这篇文章主要介绍CHM如何实现文档解包批处理,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!HH的脾气是目标文件夹路径不支持带空格或引号,所以变复杂了点,否则一行命令足矣 其他的代码没啥难度,重在实用 批处理代码如下:
2023-06-08

windows批处理文件打不开如何解决

如果无法打开Windows批处理文件(.bat文件),可能是由于以下原因:1. 文件关联错误:确保计算机上已正确关联.bat文件类型与默认的命令提示符(cmd)。解决方法:右键单击.bat文件,选择“打开方式”,然后选择“选择默认程序”。选
2023-09-05

如何才能让注册表修改立即生效的DIY批处理文件

本篇文章为大家展示了如何才能让注册表修改立即生效的DIY批处理文件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。人们在使用电脑的过程中,为了让系统更符合自己的使用习惯,常常需要将REG文件双击导入注
2023-06-14

如何使用批处理解决数值排序问题

这篇文章将为大家详细讲解有关如何使用批处理解决数值排序问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。a.txt中有20行随机产生的数列,如下: 2928326128601232462131283250
2023-06-08

如何使用批处理解约瑟夫环应用题

小编给大家分享一下如何使用批处理解约瑟夫环应用题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!题目:   有二十九个女生(分别用1-29号来称呼)围成一圈玩报数游
2023-06-08

如何批处理解决IE不支持JavaScript等问题

这篇文章主要介绍“如何批处理解决IE不支持JavaScript等问题”,在日常操作中,相信很多人在如何批处理解决IE不支持JavaScript等问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何批处理解决
2023-06-09

PHP中如何处理XML解析错误?

PHP是一种广泛使用的编程语言,它支持许多不同的文件格式,包括XML。在处理XML文件时,可能会出现解析错误。本文将介绍如何在PHP中处理XML解析错误,并提供一些具体的代码示例。检查XML文件格式在处理XML文件之前,必须确保XML文件的
PHP中如何处理XML解析错误?
2023-12-09

PHP中如何处理JSON解析错误?

PHP中如何处理JSON解析错误?JSON(JavaScript Object Notation)是一种常用的数据交换格式,用于存储和传输数据。在PHP中,我们经常使用内置的函数json_decode()将JSON字符串解析为PHP对象或数
PHP中如何处理JSON解析错误?
2023-12-09

idea无法解析符号如何处理

当IDE无法解析符号时,可以尝试以下几种方法来处理:1. 检查语法错误:首先,仔细检查代码中是否存在语法错误,例如拼写错误、缺少分号、括号不匹配等。这些错误可能导致IDE无法解析符号。2. 检查导入语句:确保正确导入所需的库或模块。有时候,
2023-09-27

批处理如何实现网站屏蔽与解除屏蔽

这篇文章主要为大家展示了“批处理如何实现网站屏蔽与解除屏蔽”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“批处理如何实现网站屏蔽与解除屏蔽”这篇文章吧。@echo off&color 0f&tit
2023-06-09

批处理bat+Rar如何实现批量独立压缩目录和解压目录

小编给大家分享一下批处理bat+Rar如何实现批量独立压缩目录和解压目录,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!c:\r\a c:\r\b cd c:\r
2023-06-08

编程热搜

  • 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动态编译

目录