我是PowerShell的新手,所以错误可能很明显,但我的代码在下面。我正在尝试编写一个脚本来替换100.1,100.2,100.3,100.4子网上包含IP地址的所有行,并用一行表示" Ignore替换它们。当我的代码运行时,它只是将原始行写入新文件,然后多次将单词ignore打印到屏幕上。
foreach ($line in $sources) {
if($line -notlike "100.1.*" -and $line -notlike "100.2.*" -and $line -notlike "100.3.*" -and $line -notlike "100.4.*"){
$line.Replace( $line, "Ignore");
$line >> $outputFile
}
}
答案 0 :(得分:1)
不要打扰替换。只需指定静态值。
foreach ($line in $sources) {
if($line -notlike "100.1.*" -and $line -notlike "100.2.*" -and $line -notlike "100.3.*" -and $line -notlike "100.4.*") {
"Ignore" >> $outputFile;
} else {
$line >> $outputFile;
}
}
我可能在这里有倒退的逻辑。您的描述和代码让我感到困惑。这与我写它的方式相反。