Я пытаюсь разработать форму из PowerShell, которая контролирует и контролирует выполнение скрипта (в моем случае VBScript, но это может быть любой другой) и получить некоторые значения из него.
Я новичок вPowerShell, поэтому я извиняюсь за структуру кода. Английский не мой родной язык, поэтому я также прошу прощения за любые ошибки. Я также разместил еще один вопрос, связанный с этой разработкой программы
Я использую PowerShell, потому что я хочу, чтобы в моей форме были значок и меню на панели задач уведомлений Windows. На данном этапе у меня есть только значок, но у меня также будет меню. Это не проблема.
Мне нужна моя форма после нажатия кнопки, чтобы запустить VBScript, который заканчивается результатом (целое число или строка), а затем назначить этот результат переменной PowerShell. Но я получил длинное предложение с авторскими правами PowerShell до значения желаемого результата.
Кто-нибудь знает, как я могу решить мою проблему? Основная цель - получить результат VBScript в переменную PowerShell ...
В качестве теста VBScript, который я пытаюсь запустить с моей программой PowerShell, представляет собой простое присвоение переменной, которую я назвал hello.vbs
:
Master_Variable = 222
WScript.Echo Master_Variable
Для этого я создал 3 файла кода. Он начинается с VBScript с именем 'program.vbs', который вызывает команду 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"
НаконецMAIN Script с именем 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()