删除 PowerShell 版权打印输出并将 VBScript 结果的输出传输到 PowerShell 变量
Remove PowerShell Copyright print out and transfer output of VBScript result to a PowerShell variable
我正在尝试从 PowerShell 开发一个表单来控制和监视脚本的执行(在我的例子中是 VBScript,但它可以是任何其他脚本)并从中获取一些值。
我是 PowerShell 的新手,所以我对代码结构深表歉意。英语不是我的母语,所以我也为任何错误道歉。我还发布了另一个与此相关的问题
我正在使用 PowerShell,因为我希望我的表单在 Windows 通知任务栏中有一个图标和一个菜单。在这个阶段,我唯一拥有的就是图标,但我也会有一个菜单。这不是问题。
我需要我的表单在单击按钮后启动一个以结果(整数或字符串)结尾的 VBScript,然后将该结果分配给 PowerShell 变量。 但是什么我得到的是在所需输出值之前带有 PowerShell 版权的长句。
有谁知道我该如何解决我的问题?主要目的是将 VBScript 的结果放入 PowerShell 变量中...
作为测试,我尝试使用 PowerShell 程序启动的 VBScript 是一个简单的变量赋值,我将其命名为 hello.vbs
:
Master_Variable = 222
WScript.Echo Master_Variable
为此,我创建了 3 个代码文件。它以调用 PowerShell 命令的名为 'program.vbs' 的 VBScript 开头:
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "C:\Users\XXX\Desktop\Program\program.bat" & Chr(34), 0
Set WshShell = Nothing
其次,它执行名为 program.bat
的批处理文件,该文件调用 PowerShell 脚本:
powershell -executionpolicy bypass -file "C:\Users\XXX\Desktop\Program\program.ps1"
最后,名为 program.ps1
的 MAIN 脚本使用控制和监视指令创建了表单:
[System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
$Form = New-Object System.Windows.Forms.Form
$Label1 = New-Object System.Windows.Forms.Label
$ComButt1 = New-Object System.Windows.Forms.Button
$Form.Text = "Application"
$Form.Controls.Add($Label1)
$Form.Controls.Add($ComButt1)
$Form.Width = 1260
$Form.Height = 120
$Form.FormBorderStyle = "FixedSingle"
$Form.MaximizeBox = $False
$Form.StartPosition = "CenterScreen"
$Label1.Text = "Value of vbs variable: "
$Label1.Left = 30
$Label1.Top = 20
$Label1.AutoSize = $True
$ComButt1.Text = "Read VBScript"
$ComButt1.Left = 12
$ComButt1.Top = 40
$ComButt1.Width = 102
$ComButt1.Add_Click({
$answer = cscript /nologo "C:\Users\u36557\Desktop\Programita\hello.vbs"
$Label1.Text = $Label1.Text + $answer
})
$Form.ShowDialog()
我在其他问题中找到了解决方案:
Solution here
cscript /nologo myscript.vbs
我正在尝试从 PowerShell 开发一个表单来控制和监视脚本的执行(在我的例子中是 VBScript,但它可以是任何其他脚本)并从中获取一些值。
我是 PowerShell 的新手,所以我对代码结构深表歉意。英语不是我的母语,所以我也为任何错误道歉。我还发布了另一个与此相关的问题
我正在使用 PowerShell,因为我希望我的表单在 Windows 通知任务栏中有一个图标和一个菜单。在这个阶段,我唯一拥有的就是图标,但我也会有一个菜单。这不是问题。
我需要我的表单在单击按钮后启动一个以结果(整数或字符串)结尾的 VBScript,然后将该结果分配给 PowerShell 变量。 但是什么我得到的是在所需输出值之前带有 PowerShell 版权的长句。
有谁知道我该如何解决我的问题?主要目的是将 VBScript 的结果放入 PowerShell 变量中...
作为测试,我尝试使用 PowerShell 程序启动的 VBScript 是一个简单的变量赋值,我将其命名为 hello.vbs
:
Master_Variable = 222
WScript.Echo Master_Variable
为此,我创建了 3 个代码文件。它以调用 PowerShell 命令的名为 'program.vbs' 的 VBScript 开头:
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "C:\Users\XXX\Desktop\Program\program.bat" & Chr(34), 0
Set WshShell = Nothing
其次,它执行名为 program.bat
的批处理文件,该文件调用 PowerShell 脚本:
powershell -executionpolicy bypass -file "C:\Users\XXX\Desktop\Program\program.ps1"
最后,名为 program.ps1
的 MAIN 脚本使用控制和监视指令创建了表单:
[System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
$Form = New-Object System.Windows.Forms.Form
$Label1 = New-Object System.Windows.Forms.Label
$ComButt1 = New-Object System.Windows.Forms.Button
$Form.Text = "Application"
$Form.Controls.Add($Label1)
$Form.Controls.Add($ComButt1)
$Form.Width = 1260
$Form.Height = 120
$Form.FormBorderStyle = "FixedSingle"
$Form.MaximizeBox = $False
$Form.StartPosition = "CenterScreen"
$Label1.Text = "Value of vbs variable: "
$Label1.Left = 30
$Label1.Top = 20
$Label1.AutoSize = $True
$ComButt1.Text = "Read VBScript"
$ComButt1.Left = 12
$ComButt1.Top = 40
$ComButt1.Width = 102
$ComButt1.Add_Click({
$answer = cscript /nologo "C:\Users\u36557\Desktop\Programita\hello.vbs"
$Label1.Text = $Label1.Text + $answer
})
$Form.ShowDialog()
我在其他问题中找到了解决方案:
Solution here
cscript /nologo myscript.vbs