【发布时间】:2021-06-08 07:19:34
【问题描述】:
我正在尝试替换文件中与条件不匹配的某些行,然后我需要将输出写入差异文件 [我实际上需要将输出重定向到同一个文件,但我不知道如何做它]并得到以下错误
代码-
$fileName = E:\onlinecode\afarm_2106.txt
$FileModified = @()
[System.IO.StreamReader]$afarmfile = [System.IO.File]::Open("E:\onlinecode\Btnbar64\a_farm.txt",
[System.IO.FileMode]::Open)
while (-not $afarmfile.EndOfStream){
$line = $afarmfile.ReadLine()
if ( $Line -like "*2104 Training Markets*" )
{
$FileModified += $Line
# Write-Output $FileModified
}
else
{
$FileModified += $Line -replace "2104","2106" -replace "21043","21062"
}
}
$afarmfile.Close()
Set-Content -Path $filename -value $FileModified
错误 -
Set-Content : Cannot bind argument to parameter 'Path' because it is null.
At line:19 char:19
+ Set-Content -Path $filename -value $FileModified
+ ~~~~~~~~~
+ CategoryInfo : InvalidData: (:) [Set-Content], ParameterBindingValidationException
+ FullyQualifiedErrorId :
ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.SetContentCommand
任何解决问题的帮助/直接写入同一文件将不胜感激
【问题讨论】:
-
谢谢,是的,引号是问题
-
@Theo 同意,我删除了我的评论。我将指出错误在哪里。似乎您忘记在
$fileName变量中添加引号,因此为什么Set-Content会抛出该错误。
标签: powershell