替换值我有一个用于批量电子邮件作业的文本文件。目前,我必须手动浏览文件并在某些条目上设置标志(eomm :),以便不发送电子邮件。该文件可以包含数百行。下面是该文件的快照:解析和不规则的多行文本文件使用PowerShell
reci:
reci:
subj:
body:
body:
eomm:yes
reci:
reci:
subj:
body:Your request for...
body:
eomm:no
reci:
reci:
subj:
body:Your request for...
body:app_name
body:
eomm:yes
reci:
reci:
subj:
body:Your request for...
body:
eomm:yes
reci:
reci:
subj:
body:Your request for...
body:
body:
body: Please note that...
body:
body:Because the application you selected requires an install,...
eomm:yes
所以,每个电子邮件以2开始“RECI:”项,1“主旨:”条目,2个或更多的身体:“项,和一个“eomm:”输入,按顺序。 目前,我必须找到条目只有2的身体:“项,但有一个“eomm:”值设置为“yes”,并将其更改为“no”。 这是我需要自动化。
到目前为止,我有通过这次找这种模式循环,但只找到了最后一场比赛的脚本。 (我有结果去输出文件来验证它实际上在做什么)。这是我到目前为止有:
$logfile = gc ./cstemail.txt
for ($i = 0; $i -lt $logfile.count; $i++) {
if ($logfile[$i] -match 'subj:') {
if ($logfile[$i + 1] -match 'body:') {
if ($logfile[$i + 2] -match 'body:') {
if ($logfile[$i + 3] -match 'eomm:yes') {
$logfile[$i + 3].replace('eomm:yes','eomm:no')
}
}
}
}
}
我最后的脚本需要能够找到这些行并替换:用“eomm:没有”'eomm肯定的。似乎它应该与我有的,但替换功能不起作用。我也试过,没有运气以下:
$logfile[$i + 3] -replace 'eomm:yes','eomm:no'
你钉了它。感谢dugas!我知道我很亲密。 :) – N1tr0