无法从powershell参数列表中读取

时间:2017-10-13 13:49:45

标签: powershell

我有一个简单的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

1 个答案:

答案 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!"

此外,由于您的代码看起来很简单,您确定这是您的可执行文件的正确路径吗?您是否在更改代码后重建了解决方案?像这样的简单疏忽往往是个问题。