如何使用 powershell 将条件应用于多个字符串中的字符串

问题描述 投票:0回答:1

我正在尝试制作一个 txt 文件并将一些内容应用于多个字符串

这是我到目前为止所做的:

$Filename = "Jessica,Jimmy,Adam"
$Content = ({Whoisthesmartest=})
$Splitname = get-childitem $Filename -split "," 
new-item c:\test.txt -itemtype file -value $Content + $Splitname

但这没有用。

我想要实现的是一个包含内容的txt文件:

Whoisthesmartest=Jessica
Whoisthesmartest=Jimmy
Whoisthesmartest=Adam
powershell split file-get-contents get-childitem new-item
1个回答
0
投票
  • 您需要单独处理数组

    $SplitName
    的元素,您可以通过在管道中枚举它来完成...

  • ...通过

    ForEach-Object
    处理每个元素...

  • ...并使用

    Set-Content

    将结果保存到输出文件
    • 请注意,
      Set-Content
      会悄悄地覆盖现有文件,
      New-Item
      只有在添加
      -Force
      .
    • 时才会这样做
$Filename = "Jessica,Jimmy,Adam"
$Content = 'Whoisthesmartest='    # Note: Use a *string*, not {...}
$Splitname = $Filename -split "," # No need for Get-ChildItem - unless I'm missing something.

$Splitname | 
  ForEach-Object { $Content + $_ } |
  Set-Content c:\test.txt

至于你尝试了什么

$Content = ({Whoisthesmartest=})

这会将一个脚本块

{ ... }
)(不必要地包裹在
(...)
中)分配给
$Content
,而您正在寻找string

$Content = 'Whoisthesmartest='

... -value $Content + $Splitname

$Content + $Splitname
是一个 expression,为了使表达式用作 command argument,它必须 包含在
(...)
:

... -value ($Content + $Splitname)

$Splitname = get-childitem $Filename -split ","

既然

$SplitName
是一个string你想分裂,没有理由涉及
Get-ChildItem
;除此之外,该语句具有与上述相同的问题:表达式
$Filename -split ","
缺少
(...)
enclosure.

© www.soinside.com 2019 - 2024. All rights reserved.