batch-file - 用于运行批处理文件的 VBS 脚本,而不是在启动时运行
问题描述
我已经通过单击运行它并以管理员身份运行,它工作正常。
当我把它放在一个快捷方式中,配置为以管理员身份运行时,它不会在启动时启动。
这是我的 VBS 脚本:
Set objshell = wscript.createobject("wscript.shell")
objshell.run("C:\ERPSystem\znc\backup\bat\callbackupdb.bat"),0, true
我想它具有操作系统中的权限,因为它在其他计算机上正常工作。
解决方案
你可以尝试这样的 vbscript :
Option Explicit
Dim PathApplication,ShortcutName,VbsPath
VbsPath = Wscript.ScriptFullName
PathApplication = "C:\ERPSystem\znc\backup\bat\callbackupdb.bat"
ShortcutName = "Backupdb"
Call Shortcut(VbsPath,ShortcutName)
Call Hidden_Run(Dblquote(PathApplication))
'----------------------------------------------------------------------------------------
Sub Shortcut(PathApplication,ShortcutName)
Dim objShell,StartFolder,objShortCut,MyTab
Set objShell = CreateObject("WScript.Shell")
MyTab = Split(PathApplication,"\")
If ShortcutName = "" Then
ShortcutName = MyTab(UBound(MyTab))
End if
StartFolder = objShell.SpecialFolders("Startup")
Set objShortCut = objShell.CreateShortcut(StartFolder & "\" & ShortcutName & ".lnk")
objShortCut.TargetPath = Dblquote(PathApplication)
ObjShortCut.IconLocation = "%SystemRoot%\system32\SHELL32.dll,-25"
objShortCut.Save
End Sub
'----------------------------------------------------------------------------------------
Function DblQuote(Str)
DblQuote = Chr(34) & Str & Chr(34)
End Function
'----------------------------------------------------------------------------------------
Function Hidden_Run(MyProgram)
Dim ws,Result
Set ws = CreateObject("wscript.Shell")
Result = ws.run(MyProgram,0,True) '0 to hide the program
Hidden_Run = Result
End Function
'----------------------------------------------------------------------------------------