重写文本文件中的第一行

时间:2016-05-26 11:48:00

标签: powershell

我正在尝试在PowerShell中的函数中重写文本文件中的第一行。 这是我的代码,但它不起作用。

$deel = Get-Content E:\Examen\Nieuw\deel.txt

function lijnHerschrijven($naam1, $naam2) {
    ($deel) | ForEach-Object {$_ -replace "$naam1", "$naam2"} |
        Set-Content E:\Examen\Nieuw\deel.txt
}
lijnHerschrijven("Deel 1", "Deel 2")

因此文件中有1行→“Deel 1”,当我调用该函数时,它必须将“Deel 1”替换为“Deel 2”。但文件一直说“Deel 1”。

2 个答案:

答案 0 :(得分:2)

function Rename-Something
{
  [CmdletBinding()]
  param
  (
    [String]
    $Path,

    [String]
    $Naam1,

    [String]
    $naam2
  )

  $File = Get-Content -Path $Path
  $File[0] = $File[0] -replace $naam1, $naam2
  $File | Set-Content -Path $Path
}

Rename-Something -Path yourtextfile -Naam1 deel1 -naam2 deel2

函数参数需要用空格分隔,如上所示。 注意:此功能仅替换第一行而不替换其他内容。

答案 1 :(得分:1)

问题是你实际上用2个字符串的数组调用你的函数而不是传递两个参数。将最后一行更改为

lijnHerschrijven "Deel 1" "Deel 2"