微信公众号 
图码生活

每天发布有五花八门的文章,各种有趣的知识等,期待您的订阅与参与
电脑报 1992-2001 十年文章全集
电脑报 1992-2001 十年文章全集
包含从 1992 年 - 2001 年间,两万余篇期刊文章,查询最少输入两个字符
随便看看
读取中
读取中
标题Windows的“批处理”妙用几则
栏目软件世界
作者徐喜峰
发布2001年17期
  Windwos其实也有自己的“批处理”,不过它的名字已不再叫BAT,而是叫WSH(即Windows Scripting Host的缩写形式),WSH支持VBScript和JScript(注意:并非为JavaScript,这是有差别的)来作为它的脚本指令语言。这些脚本指令程序完全是纯文本格式,其中用VBScript脚本语言编写的WSH程序文件的后缀为.VBS,用JScript脚本语言编写的程序文件的后缀为.JS,并且这些脚本程序是由相应的应用程序来解释执行,在字符界面下WSH程序是由cscript.exe来解释执行的,在窗口界面是由Wscript.exe来解释执行的。注意:cscript.exe文件在windows\command目录下,而Wscript.exe文件则在windows目录下。
  不要因为WSH程序是脚本语言编写的,就小瞧它的功能,也不要因为称WSH是Windows的“批处理”,就把它同DOS时代的Batch File相提并论,DOS下Batch File能干的工作,WSH自然不在话下,但WSH的很多功能,DOS下的Batch File却只能望而却步。还有值得一提的是,WSH程序是基于对象的,这就使得它能够胜任比较复杂或面对对象的工作,它可以访问Execl文件,能够在桌面为应用程序建立快捷方式,还可以与网络相沟通,获取各种网络信息,还能够修改系统注册表,等等。下面就来具体看看它的各种应用:
  1.显示与网络相关的信息(

)
  'DisplayNetworkMessage.vbs
  Dim GetNetworkMessage,NetworkMessage
  Set GetNetworkMessage=WScript.CreateObject(“WScript.Network”)
  NetworkMessage=“本网络相关的信息如下:”&Chr(13)&Chr(10)
  NetworkMessage=NetworkMessage&“工作组名为:”& GetNetworkMessage.UserDomain &Chr(13)&Chr(10)
  NetworkMessage=NetworkMessage&“使用者名为:”& GetNetworkMessage.UserName &Chr(13)&Chr(10)
  NetworkMessage=NetworkMessage&“计算机名为:”& GetNetworkMessage.ComputerName
  MsgBox(NetworkMessage)
  2.执行指定的命令
  'RunTheCommand.vbs
  Dim RunCommand,CommandLine
  Set RunCommand=WScript.CreateObject(“WScript.Shell”)
  CommandLine=“c:\windows\explorer.exe c:\”
  '此命令是用来打开“资源管理器”,并进入到C:盘根目录
  RunCommand.Run(CommandLine)
  3.关闭Windows
  'Shutdown.vbs
  Dim Shutdown
  Set Shutdown=WScript.CreateObject(“Shell.Application”)
  Shutdown.ShutdownWindows
  '此程序运行之后就出现“关闭系统”对话框
  4.显示本机的IP地址(

2)
  'DisplayIPAddress.vbs
  Dim GetIPAddress,IPAddress
  Set GetIPAddress=WScirpt.CreateObject(“MSWinsock.Winsock”)
  IPAddress=GetIPAddress.LocalIP
  MsgBox(“Current Host Machine IP=”&IPAddress)
  5.给注册表加把锁(禁止使用注册表编辑器regedit.exe)
  'DisableRegistryTools.vbs
  Dim ChangeRegistry,KeyPaht,KeyData,KeyType
  Set ChangeRegistry=WScript.CreateObject(“WScript.Shell”)
  KeyPaht=“HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableRegistryTools”
  KeyData=1
  KeyType=“REG_DWORD”
  ChangeRegistry.RegWrite KeyPaht,KeyData,KeyType
  MsgBox(“注册表已成功加锁!”)
  '该程序执行后注册表被锁(

3)
  6.建立文档
  'CreateFile.vbs
  Dim CreateNewFile,NewFile,Text,FilePath
  Set CreateNewFile=CreateObject(“Scripting.FileSystemObject”)
  Text=“这些内容将被写进新的文本文件当中,并且该文件保存在c:\myfolder文件夹下。”
  FilePath=“c:\myfolder\myfile.txt”
  Set NewFile=CreateNewFile.CreateTextFile(FilePath,True)
  NewFile.WriteLine(Text)
  NewFile.Close
  MsgBox(“文档已成功建立!”)
  7.关闭计算机
  'CloseSystem.vbs
  Dim CloseSystem,CloseCmd
  Set CloseSystem=WScript.CreateObject(“WScript.Shell”)
  CloseCmd=“rundll32.exe user.exe,exitwindwos”
  CloseSystem.Run(CloseCmd)
  以上六例应用均用VBScript所写,略晓VB的人就可以看懂上述代码,如果你从未接触过VB,但使用过JavaScript那也好办,因为JScript与JavaScript差别甚微,相信下面的代码你一定很面熟。
  //test.js(以下代码执行结果如

4,

5)
  //定义一个测试函数
  function test(){
  //创建对象
  var WHSShell=WScript.CreateObject(“WScript.Shell”)
  //定义各种参数
  var message_text=“请点击下面的按钮,进行测试”
  var timeout_data=0;
  var title_text=“按钮测试程序.....”;
  var button_style=65;
  var return_data;
  return_data=WHSShell.Popup(message_text,timeout_data,title_text,button_style);
  if(return_data==1) WScript.Echo(“你点击了'确定'按钮!\r\n该按钮的返回值为:”+return_data)
  else WScript.Echo(“你点击了'取消'按钮!\r\n该按钮的返回值为:”+return_data)
  }
  //调用此测试函数
  test();
  WSH中的各种对象(Object)及其方法(Method),对于VBScript和JScript来说是通用,因此本文所举的七例应用就可以很容易的换成JScript代码,我这里就不再一一复述。
  