如果file不包含字符串powershell

时间:2017-05-05 19:48:12

标签: powershell

我想只在某个文件中不存在某个字符串时才运行powershell命令。

这是我的剧本

$pattern='<!--add key="MaxNumCycles" value="40"/-->'
$textToAdd=$pattern + '

    <!--RerunMode: 1 write to DB, 2 write to DB and add to RUN export/-->
    <add key="RerunMode" value="0"/>'

$filename="C\temp\Software.exe.config"

[IO.File]::ReadAllText($filename).Replace($pattern,$textToAdd) | Set-Content $filename -Force

如果$textToAdd字符串不在$ filename中,那么我想运行此脚本。我该怎么做?

1 个答案:

答案 0 :(得分:1)

这很简单,您只需阅读文本,导管到Where,然后在Set-Content块中执行替换和ForEach

$pattern='<!--add key="MaxNumCycles" value="40"/-->'
$textToAdd=$pattern + '

    <!--RerunMode: 1 write to DB, 2 write to DB and add to RUN export/-->
    <add key="RerunMode" value="0"/>'

$filename="C\temp\Software.exe.config"

[IO.File]::ReadAllText($filename)| Where{$_ -notlike "*$texttoadd*"} | ForEach{$_.Replace($pattern,$textToAdd) | Set-Content $filename -Force}