powershell - 变量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()
´´´
解决方案
您拥有所需的一切: 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()
推荐阅读
- gitlab - 仓库中的 Jenkinsfile 与代码不同
- javascript - 如何在点击事件或上下文之外访问变量
- android - 如何找到运行 64 位操作系统的 Android 手机进行软件测试?
- excel - 运行时错误 424,带有基于选择的隐藏框
- javascript - 搜索关键字数组以查看是否有任何字符与用户输入匹配
- ubuntu - 安装 Windows 10 时可启动 USB 不工作
- php - 我的域名后面是 index.php ,当我打开任何网页时
- python-3.x - argparse,切换哪些参数对应于标准输入
- c - 加载文件时的核心转储
- performance-testing - 如何确定文档管理系统的数据量测试范围?有什么建议吗?