Powershell获取输出,向其中添加内容,然后输出到文件

Powershell获取输出,向其中添加内容,然后输出到文件,powershell,Powershell,这是我在这里的第一次用户,但基本上这就是我在过去几天里一直试图弄清楚的方法,现在我被卡住了 $ImaginaryTestCase = @('Ted', 'Bill', 'Tom', 'Bob') $ImaginaryTestCase -Contains 'Bill' 这应该输出为true,我遇到的问题是,我需要获取该true输出,将其放入文本文件中显示“Bill:true”的文件中。我知道我可以得到真实的语句,并使用output file轻松地将其输出到一个文件中,但我想在它达到这一点之前对

这是我在这里的第一次用户,但基本上这就是我在过去几天里一直试图弄清楚的方法,现在我被卡住了

$ImaginaryTestCase = @('Ted', 'Bill', 'Tom', 'Bob')

$ImaginaryTestCase -Contains 'Bill'
这应该输出为true,我遇到的问题是,我需要获取该true输出,将其放入文本文件中显示“Bill:true”的文件中。我知道我可以得到真实的语句,并使用output file轻松地将其输出到一个文件中,但我想在它达到这一点之前对其进行修改


要实现这一点,我需要做什么?

使用if语句构建一个代码块,在搜索成功时执行该代码块。让我们举一个这样的例子

$i = @('Ted', 'Bill', 'Tom', 'Bob') 
$p = 'Bill'
if($i -contains $p) {
  $result = "{0}:{1}" -f $p, "it is troo!"
  write-host $result 
}
# Output:
Bill:it is troo!

$result
变量包含一个基于.Net复合格式的字符串。
{0}
{1}
是字符串中的占位符,它将包含格式化TIG
-f
开关之后的任何内容。

您可以尝试使用switch语句

$ImaginaryTestCase = @('Ted', 'Bill', 'Tom', 'Bob')
   switch -Exact ($ImaginaryTestCase){
        "Bill" {"$_`: True" }
        } #| Out-File -FilePath C:\Path\text.txt
这是一个非常方便的工具,可以与IFS语句相媲美。这样使用:

Switch (<test-value>)
{
    <condition> {<action>}
    <condition> {<action>}
}
开关()
{
{}
{}
}
在您的例子中,它遍历数组,查找您在匹配字符串“Bill”时设置的条件。然后它根据该条件执行一个操作。在本例中,它只是使用它用来匹配字符串的
$\uuu
传回对象,并添加了“
:True
”作为您的目标