批处理是我们管理计算机和进行一些日常工作的好帮手,随着Windows的升级,批处理能做的事情越来越多。但是还是有很多事情我们无法用批处理来完成。好在后来微软在windows中加入了Windows Script Host,我们现在可以用JScript或VBScript来完成更复杂的工作,配合WMI,可以说是无所不能。WSH脚本用CScript.exe或WScript.exe来执行,CScript.exe和WScript.exe有一些参数,设置不同的参数对运行的结果可能会有影响。我就曾发现有的脚本在使用缺省解释器 (WScript.exe)和缺省参数不能得到我想要的结果。这样当我写好一个脚本给别人使用时还得大费口舌解释该用CScript.exe还是 WScript.exe运行,该配哪些参数。怎么解决这个问题呢?有一个方法: 另写一个批处理文件,用适当的方式来运行这个脚本。不过这样我就需要有两个文件。能不能只用一个文件呢?能!将脚本和批处理融为一体!,不但可以解决上述问题,还可以同时利用批处理和WSH各自的优势。
思路是把批处理语句放在脚本的注释里。JScript可以用/* */将一段文字作为注释,所以我选择了JScript。但/* */在批处理中是非法字符,怎么才能将其引入而没有任何不需要的错误提示呢?
我们需要一个批处理和JScript都接受的且没什么用的语句将/* 引入。JScript中有这样的语句 @set @varname=value,而批处理中也有: set varname=value, 批处理中可以在语句前面加个@,表示此句不输出。这就是我们需要的!至于*/很好办,用 @rem */即可。
请看下面的代码(扩展名为bat),很简单。
复制代码 代码如下:
@set @this_call_started=1 /*
@echo off
@rem 允许CMD.EXE扩展功能
@SETLOCAL ENABLEEXTENSIONS
@rem 允许CMD.EXE延迟展开环境变量
@SETLOCAL ENABLEDELAYEDEXPANSION
...
批处理语句写在这里
...
@rem "%~dpnx0" 扩展批处理文件自身的文件名为带完整路径的文件名
@rem %* 批处理文件自身的所有参数
@rem 重新将本文件作为脚本文件调用
@call CScript.EXE "%~dpnx0" //Nologo //e:jscript %*
...
批处理语句写在这里
...
@goto end_this_call
@rem */
//Windows Script Start==================================================
...
脚本语句写在这里
...
//Windows Script end=====================================================
/*
:end_this_call
...
批处理语句写在这里
...
@set @this_call_started=
@rem */
思路是把批处理语句放在脚本的注释里。JScript可以用/* */将一段文字作为注释,所以我选择了JScript。但/* */在批处理中是非法字符,怎么才能将其引入而没有任何不需要的错误提示呢?
我们需要一个批处理和JScript都接受的且没什么用的语句将/* 引入。JScript中有这样的语句 @set @varname=value,而批处理中也有: set varname=value, 批处理中可以在语句前面加个@,表示此句不输出。这就是我们需要的!至于*/很好办,用 @rem */即可。
请看下面的代码(扩展名为bat),很简单。
复制代码 代码如下:
@set @this_call_started=1 /*
@echo off
@rem 允许CMD.EXE扩展功能
@SETLOCAL ENABLEEXTENSIONS
@rem 允许CMD.EXE延迟展开环境变量
@SETLOCAL ENABLEDELAYEDEXPANSION
...
批处理语句写在这里
...
@rem "%~dpnx0" 扩展批处理文件自身的文件名为带完整路径的文件名
@rem %* 批处理文件自身的所有参数
@rem 重新将本文件作为脚本文件调用
@call CScript.EXE "%~dpnx0" //Nologo //e:jscript %*
...
批处理语句写在这里
...
@goto end_this_call
@rem */
//Windows Script Start==================================================
...
脚本语句写在这里
...
//Windows Script end=====================================================
/*
:end_this_call
...
批处理语句写在这里
...
@set @this_call_started=
@rem */
标签:
脚本,批处理
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
千金楼资源网 Copyright www.htabc.com
暂无“脚本与批处理合二为一”评论...
更新日志
2024年05月20日
2024年05月20日
- dnf角色名字
- 舅舅党爆料《星空》或将登陆P55平台!今年圣诞节上线
- 《方舟》开发商确定裁员6人!新作承诺不会受到影响
- 中式恐怖续作《纸嫁衣7》首曝PV公布!现已开启预约
- 周建军-老三骑驴.2017【FLAC】
- 谭维维.2007-耳界【天娱传媒】【WAV+CUE】
- 逃跑计划.2021-回到海洋【东亚星光】【FLAC分轨】
- 《对马岛》击败《战神》《蜘蛛侠》:同时在线最高单机
- 人民日报评《歌手》全开麦直播:抛去滤镜难能可贵
- 《DNF手游》可以下载了:现已开放角色创建
- 群星《醉爱对唱》[WAV+CUE][523M]
- 孟庭苇《留住这一刻》4CD[WAV+CUE][2.5G]
- 张杰《第1张》首版 [WAV+CUE][412M]
- 《永劫无间》反击《王者荣耀》:武道无穷,但请尊重“武道”
- 《星之破晓》回应《永劫无间》:蹭蹭精,莫挨,不欢迎!