下面是我的示例代码:
foreach ($var1 in (gc 1.txt)){
// my code logic
}
这里1.txt文件包含abc, xyz, pqr等值的列表。,如1.txt文件中有100行,以便逐一处理。在100行的处理完成后,中间有一个新的值被修改用于处理,现在的计数是101行。现在我需要重新启动脚本,应该处理新添加的值,而不是从头开始。
实际上,为了满足这个要求,我的项目中有数百行。你能告诉我实现这个目标的最好方法吗?
Thanks in advance
试试这个-保存文件的快照并将其与当前列表进行比较:
# Import values and list of completed updates
$ToUpdate = Get-Content list.txt
$Completed = Get-Content completed.txt
# Take a snapshot for next run
Copy-Item -Path list.txt -Destination completed.txt -Force
# use Compare to determine which updates are new
$Unprocessed = Compare-Object $ToUpdate $Completed |
where SideIndicator -EQ '<=' |
Select -ExpandProperty InputObject
Foreach ($var1 in $Unprocessed) {
# Do Stuff
}
理想情况下,您希望根据实际目标而不是日志文件进行检查。如果您正在更新数据库/用户目录/杂货清单,请改为查询,否则您可能会遇到问题。如果有什么东西在你不注意的时候更新了目标怎么办?如果您的脚本出错并且实际上没有完成所有更新,该怎么办?要记住的事