广告
返回顶部
首页 > 资讯 > 精选 >如何写个设置命令的VBS脚本代码
  • 571
分享到

如何写个设置命令的VBS脚本代码

2023-06-08 10:06:19 571人浏览 安东尼
摘要

这篇文章将为大家详细讲解有关如何写个设置命令的VBS脚本代码,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。代码如下:'将以下代码复制并保存为"系统命令.VBS",并运行安装。

这篇文章将为大家详细讲解有关如何写个设置命令的VBS脚本代码,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

代码如下:

'将以下代码复制并保存为"系统命令.VBS",并运行安装。
'安装成功后,可通过在程序、文件或文件夹上点右键->发送到->系统命令来设置一个命令,然后在运行中就可以输入该命令打开文件了。
'脚本运行一次后在右键菜单中增加从这里运行CMD的快捷方式,还增加查找目标文件快捷方式

'On Error Resume Next
If (lcase(right(wscript.fullname,11))<>"wscript.exe") then
set objshell=createObject("wscript.shell")
objshell.Run("Wscript //noloGo "&chr(34)&wscript.scriptfullname&chr(34))
Wscript.Quit
end if

Set pCmd=CreateObject("WScript.Shell")
Set pFso=CreateObject("Scripting.FileSystemObject")
Set pShell = CreateObject("Shell.Application")
Set pSysEnv = CreateObject("WScript.Shell").Environment("system")
strComputer = "."
Set pWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

Function LGetPath(pFile)
iLastSepPos = InstrRev(pFile, "\", -1, 1)
If iLastSepPos <= 0 Then
LGetPath=""
Exit Function
Else
LGetPath = Left(pFile, iLastSepPos-1)
End If
End Function

Function GetLnkTarget(linkPath)
linkPath=Replace(linkPath, "\", "\\")
Set pFiles = pWMIService.ExecQuery("Select * From Win32_ShortcutFile WHERE Name = " & "'" & linkPath & "'")
For Each pFile in pFiles
GetLnkTarget=pFile.Target
Exit For
Next
End Function

Function ListSysCmd(pFileName)
SysCmdPath=pCmd.RegRead("HKCU\Software\Microsoft\windows\CurrentVersion\Explorer\Shell Folders\SysCmd")
Set pFolder = pFso.GetFolder(SysCmdPath)
Set pFile = pFso.OpenTextFile(pFileName, 2, True)

For Each file in pFolder.Files
linkPath=SysCmdPath & "\" & file.name
IF UCASE(Right(file.name, 4))=".LNK" Then
Set lnkFiles = pWMIService.ExecQuery("Select * From Win32_ShortcutFile WHERE Name = " & "'" & Replace(linkPath, "\", "\\") & "'")
For Each lnkFile in lnkFiles
pFile.WriteLine(linkPath & " " & lnkFile.Target)
Next
Else
pFile.WriteLine linkPath
End IF
Next
End Function

Function GetConfigPath
Set pFolder = pShell.BrowseForFolder(0, "请选择一个目录:", 0, "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}")
If pFolder Is Nothing Then
Wscript.Quit
End If
Set pFolderItem = pFolder.Self
GetConfigPath = pFolderItem.Path
End Function

Sub SetEnv(pPath, pValue)
If pValue="" Then
pSysEnv.Remove(pPath)
Else
pSysEnv(pPath) = pValue
End IF
End Sub

Function GetEnv(pPath)
GetEnv = pSysEnv(pPath)
End Function

'判断一个字符串是否匹配一个正则表达式
' ^\w+[@]\w+[.]\w+$ E-Mail地址
' ^[0-9-]+$ 数字
Function IsMatch(Str, Patrn)
Set r = new RegExp
r.Pattern = Patrn
IsMatch = r.test(Str)
End Function

Sub AddNewCmd(pShortCutName, pTargetPath, pCmdLocation)
IF pShortCutName<>"" Then
LinkDir = pCmdLocation
Set pCmdLink = pCmd.CreateShortcut(LinkDir & "\" & pShortCutName & ".lnk")
pCmdLink.TargetPath = pTargetPath
pCmdLink.WindowStyle = 1
pCmdLink.HoTKEy = ""
pCmdLink.IconLocation = "%systemroot%\system32\shell32.dll,146"
pCmdLink.Description = "Shortcut Created At " & Date() & " " & Time()
pCmdLink.WorkingDirectory = LGetPath(pTargetPath)
pCmdLink.Save
End IF
End Sub

Set pArgs=Wscript.Arguments
If pArgs.Count = 0 Then '无参运行,复制自身到SendTo文件夹。

MsgBox "注意无参运行即执行安装过程!" & VBCRLF & _
"安装过程包括以下操作:" & VBCRLF & VBCRLF & _
"1、在发送到目录中建立该脚本的快捷方式;" & VBCRLF & _
"2、完成安装后可通过发送到建立快捷方式;" & VBCRLF & _
"3、所有快捷命令可通过运行(WIN+R)执行。" & VBCRLF
SysCmdPath = GetConfigPath
If SysCmdPath = "" Then WScript.Quit()

pCmd.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\SysCmd", SysCmdPath, "REG_SZ"
'Path = pCmd.RegRead("HKEY_LOCAL_MacHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment\Path")
Path = GetEnv("Path")

If Right(SysCmdPath, 1)="\" Then SysCmdPath = Left(SysCmdPath, Len(SysCmdPath)-1)
SysCmdPathPattern ="(;)?(" & Replace(SysCmdPath, "\", "\\") & ")(\\)?(;|$)"
If Not IsMatch(Path, SysCmdPathPattern) Then
Path = Path & ";" & SysCmdPath
SetEnv "Path", Path
End If

thisFile = WScript.ScriptFullName
IF thisFile<>SysCmdPath & "\" & WScript.ScriptName Then
pFso.CopyFile thisFile, SysCmdPath & "\"
thisFile = SysCmdPath & "\" & WScript.ScriptName
End IF

AddNewCmd "N系统命令", thisFile, pCmd.RegRead("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\SendTo")
'在右键菜单中增加创建当前文件或文件夹的系统快捷命令的菜单项
pCmd.RegWrite "HKEY_CLASSES_ROOT\*\shell\G创建系统命令\command\", "WScript.exe " & thisFile & " ""%1""", "REG_SZ"
pCmd.RegWrite "HKEY_CLASSES_ROOT\Directory\shell\G创建系统命令\command\", "WScript.exe " & thisFile & " ""%1""", "REG_SZ"
'在右键菜单中增加在当前路径打开CMD窗口命令的菜单项
pCmd.RegWrite "HKEY_CLASSES_ROOT\*\shell\Q在此打开CMD\command\", "CMD /K PUSHD ""%1\\..""", "REG_SZ"
pCmd.RegWrite "HKEY_CLASSES_ROOT\Directory\shell\Q在此打开CMD\command\", "CMD /K PUSHD ""%1""", "REG_SZ"

'在右键菜单中增加在查找快捷方式位置的菜单项
pCmd.RegWrite "HKEY_CLASSES_ROOT\*\shell\W查找目标位置\command\", "WScript.exe " & thisFile & " S ""%1""", "REG_SZ"
pCmd.RegWrite "HKEY_CLASSES_ROOT\Directory\shell\W查找目标位置\command\", "WScript.exe " & thisFile & " S ""%1""", "REG_SZ"

AddNewCmd "Q", pCmd.RegRead("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\SysCmd"), pCmd.RegRead("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\SysCmd")
AddNewCmd "QC", thisFile, pCmd.RegRead("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\SysCmd")
MsgBox "安装成功!"
ElseIf pArgs.Count = 1 Then
IF UCase(pArgs(0))="EDIT" Then '只有一个参数且为Edit时, 打开此脚本进行编辑。
pCmd.Run("Notepad.exe " & WScript.ScriptFullName)
WScript.Quit()
ElseIF UCase(pArgs(0))="LIST" Then '只有一个参数且为List时, 列出所有已经建立的快捷方式和其对应的目标文件。
ResultFile=pCmd.RegRead("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\SysCmd") & "\ListSysCmd.txt"
ListSysCmd ResultFile
pCmd.Run("Notepad.exe " & ResultFile)
WScript.Quit()
Else '只有一个参数时, 默认处理方式是建立传入的文件路径的快捷方式。
pShortCutName=InputBox("请输入该快捷方式的名字:", "创建快捷命令...", "")
IF pShortCutName="" Then WScript.Quit()
AddNewCmd pShortCutName, pArgs(0), pCmd.RegRead("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\SysCmd")
End IF
ElseIf pArgs.Count = 2 Then
IF UCase(pArgs(0))="S" Then '查找快捷方式目标文件位置
'判断是否包括\,从右键菜单执行会直接传递目标地址,从快捷方式中需要组合快捷方式的地址。
IF Instr(pArgs(1), "\") > 0 And Instr(pArgs(1), ".lnk") = 0 Then '从右键菜单执行
pCmd.Run("Explorer.exe /select, " & pArgs(1))
Else '从命令行执行
IF Instr(pArgs(1), "\") > 0 Then '全路径.lnk路径
linkPath=pArgs(1)
Else
linkPath=pCmd.RegRead("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\SysCmd") & "\" & pArgs(1) & ".lnk"
End IF
linkPath=Replace(linkPath, "\", "\\")
Set pFiles = pWMIService.ExecQuery("Select * From Win32_ShortcutFile WHERE Name = " & "'" & linkPath & "'")
For Each pFile in pFiles
pCmd.Run("Explorer.exe /n, /select, " & pFile.Target)
Next
End IF
Else
'FileLocation, ShortCutName
pShortCutName=pArgs(1)
AddNewCmd pShortCutName, pArgs(0), pCmd.RegRead("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\SysCmd")
End IF
End If


复制好脚本存为Syscmd.vbs或其它名称,就可以双击安装了,安装过程很简单,只有以下几步.

1.双击开始安装

如何写个设置命令的VBS脚本代码

2.选择安装目录

 如何写个设置命令的VBS脚本代码 如何写个设置命令的VBS脚本代码

3.安装成功

如何写个设置命令的VBS脚本代码

现在再来查看一下右键菜单

1. 创建快捷命令功能

如何写个设置命令的VBS脚本代码

在你要创建快捷命令的exe程序或任何其它文件上点右键,然后选择快捷菜单中的"G创建系统命令",或者直接按字母G,弹出以下对话框:

如何写个设置命令的VBS脚本代码

直接输入快捷命令,如QQ,快捷命令QQ就创建成功了.

然后想启动QQ时直接WIN+R打开运行窗口,并输入QQ回车,QQ程序启动就这么简单

如何写个设置命令的VBS脚本代码

如何写个设置命令的VBS脚本代码

2.在这里打开CMD功能

在任何文件或文件夹上点右键,然后选择"Q在此打开CMD"或者直接按Q,就会以此目录为工作目录打开CMD窗口

如何写个设置命令的VBS脚本代码

 如何写个设置命令的VBS脚本代码

3.查找目标位置功能

对于Windows快捷方式,经常遇到想要查找其它文件位置的情况,一般都是点右键然后查属性,查点查找文件找到,现在任何文件或文件夹上点右键都会有如下菜单,选择"W查找目标位置"或直接按W,可以查找到快捷方式的目标文件或文件夹位置,也可以查找到桌面上程序的目录位置.

如何写个设置命令的VBS脚本代码

直接定位文件所在目录并打开:

如何写个设置命令的VBS脚本代码

关于“如何写个设置命令的VBS脚本代码”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: 如何写个设置命令的VBS脚本代码

本文链接: https://www.lsjlt.com/news/253564.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何写个设置命令的VBS脚本代码
    这篇文章将为大家详细讲解有关如何写个设置命令的VBS脚本代码,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。代码如下:'将以下代码复制并保存为"系统命令.VBS",并运行安装。 ...
    99+
    2023-06-08
  • 如何实现TCP版backshell的VBS脚本代码
    这篇文章主要介绍如何实现TCP版backshell的VBS脚本代码,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!'搞一个特殊的站准备用的,没想到,等写完了,洞补上了,郁闷 'by 009,&...
    99+
    2023-06-08
  • 如何实现禁止QQ上网的vbs脚本代码
    这篇文章主要为大家展示了“如何实现禁止QQ上网的vbs脚本代码”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何实现禁止QQ上网的vbs脚本代码”这篇文章吧。dim bag,pipe,...
    99+
    2023-06-08
  • LINUX系统时间如何设置同步脚本或命令
    这篇文章主要介绍“LINUX系统时间如何设置同步脚本或命令”,在日常操作中,相信很多人在LINUX系统时间如何设置同步脚本或命令问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”LINUX系统时间如何设置同步脚本...
    99+
    2023-06-13
  • 如何实现一个在vbs运行命令行工具后让命令窗口保持打开状态的脚本
    这篇文章给大家分享的是有关如何实现一个在vbs运行命令行工具后让命令窗口保持打开状态的脚本的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。问: 如何在运行像 Ping 或 Ipconf...
    99+
    2023-06-08
  • 如何编写一个Linux系统安全设置的Shell脚本
    本篇内容介绍了“如何编写一个Linux系统安全设置的Shell脚本”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!我们将常用的系统安全配置制作...
    99+
    2023-06-09
  • Vbs COM如何实现打开/保存文件的脚本代码
    小编给大家分享一下Vbs COM如何实现打开/保存文件的脚本代码,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!您先把如下的代码复制,然后保存为FileSave.v...
    99+
    2023-06-08
  • 如何利用vbs脚本实现设置IE的打印页眉页脚信息
    本篇内容主要讲解“如何利用vbs脚本实现设置IE的打印页眉页脚信息”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何利用vbs脚本实现设置IE的打印页眉页脚信息”吧!将下面的内容保存成.vbs文...
    99+
    2023-06-08
  • 如何编写打开qq并且让它自己输入用户名和密码的vbs脚本
    这篇文章主要讲解了“如何编写打开qq并且让它自己输入用户名和密码的vbs脚本”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何编写打开qq并且让它自己输入用户名和密码的vbs脚本”吧!可以定...
    99+
    2023-06-08
  • 如何编写linux系统中的列出敏感用户的脚本代码
    这篇文章主要讲解了“如何编写linux系统中的列出敏感用户的脚本代码”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何编写linux系统中的列出敏感用户的脚本代码”吧!此处的敏感用户是指这个...
    99+
    2023-06-09
  • 如何使用vbs实现添加网站到安全站点.设置安全站点打开ActiveX时提示.去页眉页脚的vbs代码
    这篇文章将为大家详细讲解有关如何使用vbs实现添加网站到安全站点.设置安全站点打开ActiveX时提示.去页眉页脚的vbs代码,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。代码如下:' Const...
    99+
    2023-06-08
  • 如何编写批处理bat命令获取当前盘符和当前目录和上级目录的代码
    这篇文章主要讲解了“如何编写批处理bat命令获取当前盘符和当前目录和上级目录的代码”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何编写批处理bat命令获取当前盘符和当前目录和上级目录的代码...
    99+
    2023-06-08
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作