vbs简介
VBS是基于Visual Basic的脚本语言,简称VB。VBS的全称是:Microsoft Visual Basic Script Edition。
vbs语法
REM 注释
REM 参数
args1=WScript.Arguments.Item(0)
args2=WScript.Arguments.Item(1)
执行vbs文件
写好vbs脚本后,可以新建一个.vbs
后缀名文件存放,然后通过工具执行脚本。
执行vbs文件的工具有两个:
cscript "D:\test.vbs"
C:\Windows\System32\cscript.exe "D:\test.vbs"
OR
wscript "D:\test.vbs"
C:\Windows\System32\wscript.exe "D:\test.vbs"
建议使用wscript
,执行脚本无弹窗,cscript有弹窗
执行脚本
REM 后台执行脚本
WScript.CreateObject("WScript.Shell").Run "cmd /c echo 1", 0, True
REM 后台CMD执行脚本
WScript.CreateObject("WScript.Shell").Run "cmd /c D:\test.bat ", 0, True
REM 后台Powershell执行脚本
REM 默认不允许执行ps1脚本,需要在powershell中执行 set-ExecutionPolicy RemoteSigned 脚本开启
WScript.CreateObject("WScript.Shell").Run "powershell -ExecutionPolicy Bypass -noexit -File D:\testps.ps1 ", 0, True
REM 后台执行脚本+参数
WScript.CreateObject("WScript.Shell").Run "cmd /c D:\test.bat " & WScript.Arguments.Item(0) , 0, True
var args1=WScript.Arguments.Item(0)
var args2=WScript.Arguments.Item(1)
WScript.CreateObject("WScript.Shell").Run args1 & args2 , 0, True
REM 查看参数值
msgbox args1
配合注册表使用
通过注册表为文件(夹)添加右键菜单,可以查看此文档
执行脚本绝对路径执行
command
中默认值为wscript "D:\test.vbs"
REM test.vbs
REM CMD
WScript.CreateObject("WScript.Shell").Run "cmd /c D:\test.bat ", 0, True
REM Powershell
WScript.CreateObject("WScript.Shell").Run "powershell -ExecutionPolicy Bypass -noexit -File D:\testps.ps1 ", 0, True
执行脚本携带参数
command
中默认值为wscript "D:\test.vbs" "%1"
。%1
代表当前文件(夹)路径
REM test.vbs
REM CMD,chr(34) 代表引号,处理路径中存在空格问题
WScript.CreateObject("WScript.Shell").Run "cmd /c D:\test.bat " & chr(34) & WScript.Arguments.Item(0) & chr(34) , 0, True
REM Powershell
WScript.CreateObject("WScript.Shell").Run "powershell -ExecutionPolicy Bypass -noexit -File D:\testps.ps1 " & chr(34) & WScript.Arguments.Item(0) & chr(34), 0, True
test.bat
::使用%1取第一个值,%*代表取所有参数的值,
echo %1
echo %*
:: 去除参数引号
set widget="a very useful item"
set widget
set widget=%widget:"=%
set widget
testps.ps1
# 获取第一个参数
echo $args[0]
通用脚本
cmd
command
中默认值为wscript "D:\test.vbs" "D:\test.bat " "%1"
powershell
command
中默认值为wscript "D:\test.vbs" "D:\testps.ps1 " "%1"
REM 脚本位置
arg1=WScript.Arguments.Item(0)
REM 参数(文件路径)
arg2=WScript.Arguments.Item(1)
If InStr(arg1, "ps1") Then
ageexec="powershell -ExecutionPolicy Bypass -noexit -File "
Else
ageexec="cmd /c "
End If
REM chr(34) 代表引号,处理路径中存在空格问题
shell=ageexec & arg1 & chr(34) & arg2 & chr(34)
WScript.CreateObject("WScript.Shell").Run shell, 0, True
test.bat 和 testps.ps1 同上
标签:语法,Shell,Run,WScript,vbs,REM,test,弹窗 From: https://www.cnblogs.com/RainFate/p/16817541.html