首页 > 解决方案 > 变量powershell的新值

问题描述

我有一个程序可以收集有关计算机的信息并显示一些数据。但是如果我想收集有关另一台计算机的信息,我无法弄清楚如何在我的变量上获取新值。下面是我的一些代码。

包含计算机值的变量是 DatorNamn。

关于如何为该变量获取新值的任何建议?

[void] [System.Reflection.Assembly]::LoadWithPartialName("system.windows.form")
[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic') | Out-Null

#test av variable

$DatorNamn = [Microsoft.VisualBasic.Interaction]::InputBox('Skriv in DatorNamn', 'DatorNamn', "$env:Computername") | Write-Output

#Skriver Formen

$Form1 = New-Object System.Windows.Forms.Form
    $form1.Size = New-Object System.Drawing.Size(450,415)
    $form1.text = "Scripts Target:$DatorNamn"
    $form1.BackColor = "darkgray"
    $form1.FormBorderStyle = "FixedDialog"
    $form1.MinimizeBox = $true
    $form1.MaximizeBox = $true
    $Form1.ControlBox = $true
    $form1.Font = "Segoe UI"

        #Skriver Knapp byt DatorNamn

$KnappBdata = New-Object System.Windows.Forms.Button
    $KnappBdata.Location = New-Object System.Drawing.Size(260,152)
    $KnappBdata.Size = New-Object System.Drawing.Size(100,32)
    $KnappBdata.TextAlign = "MiddleCenter"
    $KnappBdata.ForeColor = "black"
    $KnappBdata.BackColor = "White"
    $KnappBdata.Text = "Byt Dator"
    $KnappBdata.Add_click({
    $outputBox.Text = [Microsoft.VisualBasic.Interaction]::InputBox('Skriv in DatorNamn', 'DatorNamn', "$env:COMPUTERNAME") | Write-Output


    })
    $Form1.Controls.Add($KnappBdata)

[void] $Form1.ShowDialog()
´´´

标签: powershell

解决方案


您拥有所需的一切: Button 事件需要在按下时刷新 GUI 对象或变量的文本。我对你的例子做了一些调整。尝试按下按钮并多次更改文本:

[void] [System.Reflection.Assembly]::LoadWithPartialName("system.windows.form")
[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic') | Out-Null

#test av variable

$DatorNamn = [Microsoft.VisualBasic.Interaction]::InputBox('Skriv in DatorNamn', 'DatorNamn', "$env:Computername") | Write-Output

#Skriver Formen

$Form1 = New-Object System.Windows.Forms.Form
    $form1.Size = New-Object System.Drawing.Size(450,415)
    $form1.text = "Scripts Target:$DatorNamn"
    $form1.BackColor = "darkgray"
    $form1.FormBorderStyle = "FixedDialog"
    $form1.MinimizeBox = $true
    $form1.MaximizeBox = $true
    $Form1.ControlBox = $true
    $form1.Font = "Segoe UI"

        #Skriver Knapp byt DatorNamn

$KnappBdata = New-Object System.Windows.Forms.Button
    $KnappBdata.Location = New-Object System.Drawing.Size(260,152)
    $KnappBdata.Size = New-Object System.Drawing.Size(100,32)
    $KnappBdata.TextAlign = "MiddleCenter"
    $KnappBdata.ForeColor = "black"
    $KnappBdata.BackColor = "White"
    $KnappBdata.Text = "Byt Dator"
    $KnappBdata.Add_click({
        # since you don't have $outputBox it will update the button
        $KnappBdata.Text = [Microsoft.VisualBasic.Interaction]::InputBox('Skriv in DatorNamn', 'DatorNamn', "$env:COMPUTERNAME") | Write-Output
    })
    $Form1.Controls.Add($KnappBdata)

[void] $Form1.ShowDialog()

推荐阅读