我正在尝试在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”。
答案 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"