我正在尝试编写一个脚本,它将创建一个非常简单的GUI,带有一个下拉列表和一个文本框用于输入。我在下拉列表中使用区域,然后将selectedIndex传递给一个进程,该进程在嵌套的if语句中为该区域分配服务器的主机名。如果选择了"确定",它将根据所选的索引和文本框中的文本输入分配主机名/打印机名。如果我写-在第一个进程中,它给了我正确的主机名,但是它没有把字符串传递到管道中。有人能帮忙吗?
# Create the logic for what happens when a list item is selected, and define the print server based on selected index.
$List.add_SelectedIndexChanged({
$Selected = $List.SelectedIndex
if ( 1 -eq $Selected )
{
($Server = 'serverName-1')
}
else
{
if ( 2 -eq $Selected )
{
($Server = 'serverName-2')
}
else
{
if ( 3 -eq $Selected )
{
($Server = 'serverName-3')
}
else
{
if ( 4 -eq $Selected)
{
($Server = 'serverName-4')
}
else
{
($Server = 'null')
}
}
}
}
Write-Output $Server
})
#Process that happens after okay is pressed
if ($result -eq [System.Windows.Forms.DialogResult]::OK)
{
# I need to know why when I define $Server above, it isn't passing the data here.
$ServerName = $Server
$PrinterName = $textBox.Text
Add-Printer -ConnectionName \\$ServerName\$PrinterName
}
在安装了Powershell外接程序的情况下在Visual Studio代码中运行时,此操作的结果为\printerName。
- 在添加
Write-Output $Server
之前,我得到了一个关于已定义但未使用的变量的错误,所以我编写了输出,希望传递数据。
先谢了!
1条答案
按热度按时间nx7onnlm1#
事件在与主窗体不同的作用域中执行,但是您可以使用引用类型(如哈希表)在脚本作用域中从它们获取结果: