仅当文件中不存在变量时,才输出文件

时间:2019-01-24 15:42:12

标签: powershell file-io unique

目标:仅当文本文件中不存在变量时,才将其写入文本文件。

我在做什么:

if (! (Get-Content "C:\historique.txt" | Where-Object {$_ -like $var})) {
    $var | Out-File -Encoding Ascii -FilePath "C:\historique.txt" -Append -Force
}

“如果在文件中未找到$ var,则文件外...”

它有效,但这是最好/最快的方法吗?该文件不会真的很大,但我希望它尽可能最佳。

1 个答案:

答案 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
}