Jas*_*son 5 vbscript powershell
我有一个 VBscript 文件。我在 Windows 2012 服务器上使用 CScript 运行此 VBscript。VBscript 在服务器上运行良好。
但我需要从 Powershell 调用这个 VBScript 文件。这就是我所做的。
为简单起见,这就是我的 VBscript 文件中的内容
回声.vbs
Msgbox("hello world")
Run Code Online (Sandbox Code Playgroud)
我写了test.ps1
$acommand = "C:\Windows\System32\Cscript.exe C:\deleteit\echo.vbs"
Invoke-Expression $acommand
Run Code Online (Sandbox Code Playgroud)
除了简单的跑步
Cscript.exe C:\deleteit\echo.vbs //nologo
Run Code Online (Sandbox Code Playgroud)
有一个 com 对象可以将 vbscript 直接嵌入到 powershell 中,但它只是 32 位的。有一种方法可以以 32 位运行作业。在 powershell 7 中,您必须使用 32 位版本。
start-job {
$sc = New-Object -ComObject MSScriptControl.ScriptControl.1
$sc.Language = 'VBScript'
$sc.AddCode('
Function MyFunction(byval x)
MyFunction = 2 * x
End Function
')
$sc.codeobject.MyFunction(1)
$sc.codeobject.MyFunction(2)
} -runas32 | wait-job | receive-job
Run Code Online (Sandbox Code Playgroud)
输出:
2
4
Run Code Online (Sandbox Code Playgroud)
小智 3
这是运行外部应用程序的正确方法,如果您使用命令行 exe 或 VBS 脚本,则可以使用相同的技术。
就我个人而言,我希望将功能添加到 PowerShell 脚本中,而不是调用外部 VBS 脚本,但这只是我的 2 美分价值:)
| 归档时间: |
|
| 查看次数: |
58911 次 |
| 最近记录: |