2016-05-26 11 views
0

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 2」に「Deel 1」を交換することがあります。しかし、ファイルは "Deel 1"と言っています。

答えて

1

問題は、実際には2つの引数を渡す代わりに2つの文字列の配列で関数を呼び出すことです。

lijnHerschrijven "Deel 1" "Deel 2" 
+0

本当に私を助けてくれる良かった! ありがとうございました!!! – Sprudeldude

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 

関数のパラメータにあなたの最後の行を変更するには、上記のようにスペースで区切っする必要があります。 注:この機能は最初の行だけを置き換えます。

関連する問題