Вы были очень близки, но Set-Content
нужны две вещи: путь к расположению файла и значение для хранения. Лично я предпочитаю перезаписывать переменные при использовании метода .Replace()
вместо передачи его в другие командлеты.
Это сделает это:
$file = Get-Content "C:\Script.dat" -Raw
$old = 'oldword'
$new = 'newword'
$file = $file.Replace($old,$new)
Set-Content -Path "C:\Script.dat" -Value $file
Если возможно, старайтесь избегать хранения файлов непосредственно на C:\
, поскольку для записи часто требуются права администратора.
Кроме того, вы можете передать Set-Content
аналогичным образом, как указано в начале, но вам все равно нужно указать путь к файлу:
$file.Replace($old,$new) | Set-Content "C:\Script.dat"