通过vbs语法不弹窗执行脚本

您所在的位置:网站首页 windows关机执行脚本不执行 通过vbs语法不弹窗执行脚本

通过vbs语法不弹窗执行脚本

2024-07-13 07:58| 来源: 网络整理| 查看: 265

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执行脚本,执行bat脚本时cmd /c 命令可以省略 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 后台执行脚本+参数,执行bat脚本时cmd /c 命令可以省略 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 同上



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3