Powershell - 建议:在脚本运行之间比较/存储数据

时间:2015-10-28 05:15:30

标签: arrays powershell scheduled-tasks

这是我想要完成的(下面是通过Windows任务调度程序按计划运行的ps1脚本):

  

我想从带有查询的数据库中获取所有锁定的帐户(我可以做到   这个和它的工作原理)

     

将这些返回的结果与先前运行中锁定的结果进行比较   此脚本(使用某种格式的文件存储这些文件)   结果)

     

对于每个锁定的帐户,添加到文件中的标记(现有ID,如果   它存在,否则为该id创建一个新条目

     

对于返回的锁定中不存在的文件中的每个对象   帐户从原始查询到数据库,从文件中删除它们   (重置标记/删除该对象条目)

     

检查任何物体的标记是否已达到预定值   阈值然后做一些事情,如果它有。

我的问题是我不知道如何存储初始数据库查询中的对象数组(csv?json?纯文本?)。

有没有人在使用Powershell之前做过这样的事情?有没有一种简单的方法来存储/检索/操作这些数据?

我尝试过一个纯文本文件,其格式是让每一行都有一个记录的锁定帐户,然后将它们放入一个数组中,然后继续比较两个数组..但是这会使多个foreach循环变得混乱/复杂在彼此里面。

非常感谢任何帮助:)

1 个答案:

答案 0 :(得分:0)

我总是鼓励我的同事使用SQL来存储所有脚本数据。在我们的例子中,我们有数百个脚本执行各种各样的事情。如果平面文件数据库与其他内容同时被读取或写入并且被锁定,则容易中断。

您必须评估您的逻辑并评估是否有任何内容可能会弄乱文件并在运行时中断脚本。如果一切顺利,那么CSV文件就可以了。否则我会使用SQL。它很容易从PowerShell写入和读取SQL。