小编edw*_*win的帖子

Start-Process 重定向输出到 $null

我正在开始一个这样的新过程:

$p = Start-Process -FilePath $pathToExe -ArgumentList $argumentList -NoNewWindow -PassThru -Wait

if ($p.ExitCode -ne 0)
{
    Write-Host = "Failed..."
    return
}
Run Code Online (Sandbox Code Playgroud)

我的可执行文件打印了很多到控制台。是否可以不显示我的 exe 的输出?

我试图添加 -RedirectStandardOutput $null标志但它没有用,因为RedirectStandardOutput不接受null. 我还尝试添加| Out-NullStart-Process函数调用中 - 没有用。是否可以隐藏我调用的 exe 的输出Start-Process

powershell

4
推荐指数
2
解决办法
6272
查看次数

使用 params 关键字从 PowerShell 调用 C# 函数

我通过 PowerShell 调用 C# 函数:

// C# code
public void Foo(string param1, int param2, Dictionary<string, string> param3)

# PowerShell code:  
Add-Type -Path $pathToDll

$myClass= New-Object -TypeName MyClass
$dic= New-Object 'System.Collections.Generic.Dictionary[String,String]'
$dic.Add("Key1","Val1")
$dic.Add("Key2","Val2")

$myClass.Foo("Test1", 1, $dic)
Run Code Online (Sandbox Code Playgroud)

但是如果我想调用带有参数的签名函数怎么办:

public void Foo(string param1, int param2, params string[] param3)
Run Code Online (Sandbox Code Playgroud)

如何从powershell调用这个函数?

如果我这样称呼它:

 $myClass.Foo("Test1", 1, "foo1", "foo2", "foo3")
Run Code Online (Sandbox Code Playgroud)

它显示错误:找不到“Foo”的重载和参数计数:“5”。

.net c# powershell

3
推荐指数
1
解决办法
1586
查看次数

PowerShell 中的数组减法

我有一个对象数组:

$people= @()
foreach ($person in $databaseOfGuests)
{
   $people += @{ "FirstName"=$person.FirstName; "LastName"=$person.LastName } 
}
Run Code Online (Sandbox Code Playgroud)

现在我想从 中删除重复项$people,是否可以在 PowerShell 中执行此操作?就像是:

$people = $people | Select -Uniq
Run Code Online (Sandbox Code Playgroud)

我有两个数组$people1and $people2,我需要获取所有在$people1但不在 the 中的人的数组,$people2反之亦然。就像是:

$peopleInPeople1ButNotInPeople2 = $people1.Substruct($people2)
$peopleInPeople2ButNotInPeople1 = $people2.Substruct($people1)
Run Code Online (Sandbox Code Playgroud)

可以在PS中一行完成吗?

linq powershell

2
推荐指数
1
解决办法
5088
查看次数

Dictionary.Keys.ToArray() 和 Dictionary.Values.ToArray() 是否保留顺序?

我有一本城市人口对象字典:

var cityPopulation = new new Dictionary<string, int>()
                    {
                        ["Sacramento"] = 495234,
                        ["Miami"] = 453579,
                        ["Memphis"] = 652717
                    });
Run Code Online (Sandbox Code Playgroud)

我需要获得 2 个对应的(相同顺序)数组。我能确定当我这样做时

var cities = cityPopulation.Keys.ToArray();
var populations = cityPopulation.Values.ToArray();
Run Code Online (Sandbox Code Playgroud)

两个数组的顺序将被保留 - 即:

城市 - 第一个元素将是萨克拉门托,第二个 - 迈阿密和第三个 - 孟菲斯,对于人口数组 - 第一个 - 495234、第二个 - 453579 和第三个 - 652717 (城市数组应对应于人口数组)。

我如何确定这一点,如果不能确定 - 如何保留这些数组的顺序?

.net c# dictionary

-2
推荐指数
1
解决办法
825
查看次数

标签 统计

powershell ×3

.net ×2

c# ×2

dictionary ×1

linq ×1