Vbscript 在外部命令中生成路径和使用

Vbscript 在外部命令中生成路径和使用,vbscript,Vbscript,如何将我的SCRIPT\u路径变量插入PowerShell脚本路径?还有谁知道我能写的类似VisualStudio的工具吗?我认为Visual Studio使用不同的.net vbs 代码如下: SCRIPT_PATH = Left(WScript.ScriptFullName, Len(WScript.ScriptFullName) - (Len(WScript.ScriptName))) MsgBox SCRIPT_PATH Set objShell = CreateObject("WScr

如何将我的
SCRIPT\u路径
变量插入PowerShell脚本路径?还有谁知道我能写的类似VisualStudio的工具吗?我认为Visual Studio使用不同的.net vbs

代码如下:

SCRIPT_PATH = Left(WScript.ScriptFullName, Len(WScript.ScriptFullName) - (Len(WScript.ScriptName)))
MsgBox SCRIPT_PATH
Set objShell = CreateObject("WScript.Shell")
objShell.Run "RUNAS  /user:Domain\User ""powershell SCRIPT_PATH & Delete_App_Script.ps1"""
Set objShell = Nothing
如何执行
SCRIPT\u PATH=SCRIPT\u PATH+Delete\u App\u SCRIPT.ps1
SCRIPT\u PATH=SCRIPT\u PATH&“Delete\u App\u SCRIPT.ps1”
不起作用。 它没有错误,所以我不确定问题出在哪里。 我是缺少一些
还是缺少一些

我看到了一些
.Run、、
的管理运行语法,而这一个没有解释
中的内容。 不期待为此创建接口

这不起作用:

Set objShell = CreateObject("WScript.Shell")
SCRIPT_PATH = Left(WScript.ScriptFullName, Len(WScript.ScriptFullName) - (Len(WScript.ScriptName)))
SCRIPT_PATH = SCRIPT_PATH & "Delete_App_Script.ps1"    
objShell.Run "RUNAS  /user:Dom\adm ""powershell SCRIPT_PATH"""
Set objShell = Nothing
但这是可行的:

Set objShell = CreateObject("WScript.Shell")
objShell.Run "RUNAS  /user:Dom\adm ""powershell C:\Delete_App_Script.ps1"""
Set objShell = Nothing
我缺少什么?

在处理路径时使用适当的方法:

Set fso = CreateObject("Scripting.FileSystemObject")

SCRIPT_PATH = fso.GetParentFolderName(WScript.ScriptFullName)
SCRIPT_PATH = fso.BuildPath(SCRIPT_PATH, "Delete_App_Script.ps1")
如前所述,要在字符串中使用变量,需要将变量连接到字符串的其余部分。这也记录在了

还请注意,如果路径包含空格,则应将其置于双引号中:

objShell.Run "RUNAS /user:Domain\User ""powershell \""" & SCRIPT_PATH & "\"""""
您应该使用参数
-File
,否则PowerShell会将脚本路径解释为命令字符串,这对于带有空格的路径不会失败

objShell.Run "RUNAS /user:Domain\User ""powershell -File \""" & SCRIPT_PATH & "\"""""

必须将变量
SCRIPT\u PATH
连接到字符串。类似于
objShell.Run“RUNAS/user:Dom\adm”“powershell”和SCRIPT\u PATH&
。感谢您的帮助。很好的了解未来。至于IDE,考虑一下VBSEDIT。谢谢,现在速度快了很多。在代码> >用户:和连接中的星号(<代码> A&*)<代码>之后,你有一个空间。两个都不应该存在。它是“用户”之后的额外空间。“我想做的是大胆的尝试。谢谢谢洛,我该如何安静地运行它?将
,0
添加到
脚本路径&“\”,0
不起作用。很抱歉,这可能是一个愚蠢的问题,这个语法对我来说非常陌生。你不能安静地运行它,因为你想切换用户上下文。即使我这样做
objShell.Run“RUNAS/user:ONE\”&user&“powershell-File\”&SCRIPT\u PATH&“\”,0 WScript.Sleep 1000 objShell.SendKeys Pass“send password objShell.SendKeys”{ENTER}”Set objShell=Nothing
objShell.Run "RUNAS /user:Domain\User ""powershell -File \""" & SCRIPT_PATH & "\"""""