通過vbs語法不彈窗執行腳本

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.battestps.ps1 同上

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章