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 同上