我有一个简单的dotnet应用程序,我想从powershell执行。但是当我在powershell中传递参数时,我的dotnet应用程序无法捕获这些值。 我不确定错误在哪里。是在dotnet方面还是在powershell中。 dotnet winform
<?php
echo "<pre>";
$dir_array = array( array( "efi" => array() ),
array( "grub" => array(
array("fonts" => array()),
array("i386-pc" => array()),
array("locale" => array()),
array("x86_64-efi" => array())
)
)
);
print_r($dir_array);
echo "</pre>\n";
function mygenerateTreeMenu($dir_array,$limit = 0)
{
$key = '';
if ($limit > 1000) return '';
foreach ($dir_array as $key => $value)
{
if (!is_int($key))
{
$tree .= "<li>";
$tree .= "<a>$key</a><ul>";
$tree .= mygenerateTreeMenu($value,$limit++);
$tree .= "</ul></li>\n";
}
else
{
$tree .= mygenerateTreeMenu($value,$limit++);
}
}
return $tree;
}
echo "<ul>\n";
$tree = mygenerateTreeMenu($dir_array);
echo $tree;
echo "</ul>\n";
?>
powershell脚本
private void Form1_load(object sender, EventArgs e)
{
string[] passedArgs = Environment.GetCommandLineArgs();
foreach(string s in passedArgs)
{
textBox1.Text = s.ToString();
}
}
谢谢, Rosalini
答案 0 :(得分:0)
如果没有看到应用程序的其他内容可能出错,很难说,因为你向我们展示的内容非常简单。要尝试的事情:
textbox1.Text = "Does a string literal work?";
如果文本框没有显示您的字符串文字,则问题出在您的C#或winforms应用程序的设计中。也许textbox1不再可见了,你还有其他文本框对象显示?也许你认为Form1_load()方法没有被调用。名字在某个地方被改变了吗?如果是这种情况,我建议重新创建表单并将Form1_load()方法的代码粘贴到那里,然后再试一次。
如果它确实按预期显示,那么我会怀疑与Powershell有关。你没有尝试过Start-Process吗?像:
& "D:\MVC\PowershellTest\PowershellTest\bin\Debug\PowershellTest.exe" "I'm argument 1" "This is argument 2" "3rd argument here!"
此外,由于您的代码看起来很简单,您确定这是您的可执行文件的正确路径吗?您是否在更改代码后重建了解决方案?像这样的简单疏忽往往是个问题。