删除PowerShell版权打印输出并将VBScript结果的输出传输到PowerShell变量

删除PowerShell版权打印输出并将VBScript结果的输出传输到PowerShell变量,powershell,vbscript,Powershell,Vbscript,我正在尝试从PowerShell开发一个表单,用于控制和监视脚本的执行(在我的例子中是VBScript,但它可以是任何其他脚本),并从中获取一些值 我是PowerShell的新手,因此我对代码结构表示歉意。英语不是我的母语,所以我也为任何错误道歉。我还发布了另一个与此相关的问题 我使用PowerShell是因为我希望我的表单在Windows通知任务栏中有一个图标和一个菜单。在这个阶段,我只有一个图标,但我也会有一个菜单。这不是问题 我需要我的表单,在单击按钮后,启动一个以结果(整数或字符串)结尾

我正在尝试从PowerShell开发一个表单,用于控制和监视脚本的执行(在我的例子中是VBScript,但它可以是任何其他脚本),并从中获取一些值

我是PowerShell的新手,因此我对代码结构表示歉意。英语不是我的母语,所以我也为任何错误道歉。我还发布了另一个与此相关的问题

我使用PowerShell是因为我希望我的表单在Windows通知任务栏中有一个图标和一个菜单。在这个阶段,我只有一个图标,但我也会有一个菜单。这不是问题

我需要我的表单,在单击按钮后,启动一个以结果(整数或字符串)结尾的VBScript,然后将该结果分配给PowerShell变量。但我得到的是在所需输出值之前带有PowerShell版权的长句

有人知道我如何解决我的问题吗?主要目的是将VBScript的结果放入PowerShell变量

作为测试,我试图用PowerShell程序启动的VBScript是一个简单的变量,我称之为
hello.vbs

Master_Variable = 222
WScript.Echo Master_Variable
为此,我创建了3个代码文件。它以名为“program.vbs”的VBScript开始,该脚本调用PowerShell命令:

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
的主脚本使用控件和监视器指令创建表单:

[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()

我在另一个问题中找到了解决方案:


cscript/nologo myscript.vbs

我在其他问题中找到了解决方案:


cscript/nologo myscript.vbs

您是否在尝试将尽可能多的语言和技术结合到某种弗兰肯斯坦脚本中?我不明白为什么你有一个执行.bat的.vbs,一个执行调用.vbsxxxd的.ps的.ps的.vbs。我的目的是启动一个vbs来启动一个Windows.Form,并在Windows notify任务栏中设置控件。我发现的唯一方法是使用PowerShell,而从VBScript调用PowerShell的唯一方法是使用bat文件XDDD。最后,我需要在PowerShell运行时从Outlook中读取一些参数,因此我需要再次调用VBScript XXXDD(您的评论让我笑得前仰后合)。如果有其他方法,我愿意接受新的IDEASOK。我找到了解决方案,我很确定通过直接从vbscript执行.ps,您可以非常轻松地绕过.bat文件。您是否在尝试将尽可能多的语言和技术结合到某种弗兰肯斯坦脚本中?我不明白为什么你有一个执行.bat的.vbs,一个执行调用.vbsxxxd的.ps的.ps的.vbs。我的目的是启动一个vbs来启动一个Windows.Form,并在Windows notify任务栏中设置控件。我发现的唯一方法是使用PowerShell,而从VBScript调用PowerShell的唯一方法是使用bat文件XDDD。最后,我需要在PowerShell运行时从Outlook中读取一些参数,因此我需要再次调用VBScript XXXDD(您的评论让我笑得前仰后合)。如果有其他方法,我愿意接受新的IDEASOK。我找到了解决方案,我确信通过直接从vbscript执行.ps,您可以非常轻松地绕过.bat文件。