如何通过使用PowerShell验证文本文件中的每一行来维护会话 [英] How to maintain a session by validating each line in a text file using powershell

查看:11
本文介绍了如何通过使用PowerShell验证文本文件中的每一行来维护会话的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

下面是我的示例代码:

foreach ($var1 in (gc 1.txt)){
 // my code logic
}

这里的1.txt文件包含ABC、XYZ、PQR等值的列表,类似于1.txt文件中的100行,用于逐个处理。在100行处理完成后,中间有一个新值被更改用于处理,现在计数为101行。现在我需要重新启动脚本,应该处理新的附加值,而不是从头开始。
实际上,对于这个要求,我的项目中有数百行。 你能给我推荐一下实现这一目标的最佳方式吗?

提前谢谢

推荐答案

尝试此操作-保存文件的快照并将其与当前列表进行比较:

# 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
}
理想情况下,您希望检查您的实际目标而不是日志文件。如果您要更新数据库/用户目录/杂货列表,请改为查询该列表,否则可能会遇到问题。如果有其他东西在你看不到的时候更新了目标怎么办?如果您的脚本出错,并且实际上没有完成所有更新,该怎么办?一定要牢记在心。

这篇关于如何通过使用PowerShell验证文本文件中的每一行来维护会话的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆