我想只在某个文件中不存在某个字符串时才运行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
中,那么我想运行此脚本。我该怎么做?
答案 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}