正在开发一个使用 azcli 的项目。当我在 WPF 文本框中对命令进行硬编码时,该命令会运行并在输出文本框中返回所需的结果。
但是,当我尝试从文本框中获取用户输入的内容时,没有任何反应。我没有收到任何错误,但也没有得到结果。最多我可以让输出文本框简单地显示我在输入文本框中输入的文本
以下代码有效,正如我在代码中的注释中所述,对命令进行硬编码会产生所需的结果。
function run {
#This runs the command and produces the desired result when I click "RunButton"
$cmdOutput = (az ad user list 2>&1)
$cmdOutput
$outputBox.text = $cmdOutput
}
$LoginButton.add_click({login})
$RunButton.add_click({run})
$xamlForm.ShowDialog() | out-null
当我尝试在 RunBox 中使用以下“运行”函数和“az ad user list”cmdlet 时,我的输出框只是显示 (az ad user list 2>&1)
,而不是将其硬编码到变量中function run {
$runInput = "(" + $RunBox.Text + " 2>&1)"
$runOutput = $runInput
$runOutput
$outputBox.text = $runOutput
}
我也用 $Runbox.Value.Text 尝试过,但没有成功。
额外的问题,我确信我搞砸了我的 StatusBox try/catch。一旦我点击登录,它总是简单地更新为已连接。
提前欢呼并感谢!
我确实同意
@Mathias R. Jessen
,并且我使用下面的相同方式使用script
:
$rithreader = [System.Xml.XmlReader]::Create([System.IO.StringReader]::new($xaml))
$rithwin = [Windows.Markup.XamlReader]::Load($rithreader)
function RithwikTest {
$test = $rithwin.FindName("RunBox").Text
try {
$testout = Invoke-Expression -Command $test 2>&1
$rithwin.FindName("OutputBox").Text = $testout
} catch {
$rithwin.FindName("OutputBox").Text = "Hello Rithwik Bojja , Error occurred: $_"
}
}
$rithwin.FindName("RunButton").add_Click({RithwikTest})
$rithwin.ShowDialog() | Out-Null
Output:
是的
@TheMadTechnician
有风险,仅建议单个或本地用户使用。