目标:仅当文本文件中不存在变量时,才将其写入文本文件。
我在做什么:
if (! (Get-Content "C:\historique.txt" | Where-Object {$_ -like $var})) {
$var | Out-File -Encoding Ascii -FilePath "C:\historique.txt" -Append -Force
}
“如果在文件中未找到$ var,则文件外...”
它有效,但这是最好/最快的方法吗?该文件不会真的很大,但我希望它尽可能最佳。
答案 0 :(得分:3)
您可以使用-notmatch
正则表达式比较来查看文件内容在$var
中是否没有想要的字符串,如下所示:
$file = 'C:\historique.txt'
$var = 'blah'
if ((Get-Content -Path $file -Raw) -notmatch [regex]::Escape($var)) {
Add-Content -Path $file -Value $var -Encoding Ascii -Force
}