【问题标题】:Powershell - Advice: Comparing/Storing data between script runsPowershell - 建议:在脚本运行之间比较/存储数据
【发布时间】:2015-10-28 05:15:29
【问题描述】:

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

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

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

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

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

检查任何对象的计数是否已达到预定值 如果有阈值,则执行某些操作。

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

以前有人用 Powershell 做过类似的事情吗?有没有一种简单的方法来存储/检索/操作这些数据?

我尝试使用纯文本文件,格式为将每一行记录为锁定帐户,然后将它们放入一个数组中,然后继续比较两个数组..但这会因多个 foreach 循环而变得混乱/复杂彼此内心。

任何帮助将不胜感激:)

【问题讨论】:

    标签: arrays powershell scheduled-tasks


    【解决方案1】:

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

    您必须评估您的逻辑并评估是否有任何东西可能会弄乱文件并在脚本运行时破坏脚本。如果一切都好,那么 CSV 文件就可以了。否则我会使用 SQL。它很容易从 powershell 写入和读取到 SQL。

    【讨论】:

    • 好主意!只有我在我的团队中设置了这些东西,但这是一件很好的事情,以后要记住。可能会看看我们的 DBA 是否愿意为我制作一个:P 我最终采用了平面文件的想法,并使用了 xml 而不是 csv。主要是因为我忘记了使用 export-clixml 和 import-clixml 是多么容易。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-24
    • 2021-07-28
    • 2021-04-15
    • 1970-01-01
    • 2019-02-25
    相关资源
    最近更新 更多