Удалите распечатку PowerShell Copyright и перенесите результат VBScript в переменную PowerShell - PullRequest
1 голос
/ 24 октября 2019

Я пытаюсь разработать форму из 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()

1 Ответ

0 голосов
/ 29 октября 2019

Я нашел решение в другом вопросе:

Решение здесь

cscript /nologo myscript.vbs

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...