使用Powershell识别程序修改的所有文件

时间:2015-02-10 18:10:12

标签: powershell

我希望找到一种方法来列出程序中某个操作后程序修改的所有文件。我对此脚本的思考过程是:

  1. 拍摄H:\驱动器上所有对象的快照。
  2. 暂停脚本并转到我正在测试的程序,并采取措施修改H:\驱动器上的一个或多个文件。
  3. 拍摄H:\驱动器的第二个快照,并仅输出上次修改时间不同的文件。
  4. 我已经有一个正在运行的脚本,它将检查过去一小时内修改过的所有文件,但我想设置一个或多或少是实时的脚本。

    到目前为止我已经

    $before = get-childitem H:\ -recurse
    read-host
    $after = get-childitem H:\ -recurse
    Compare-object -referenceobject $before -differenceobject $after -Property lastwritetime -passThru | 
    out-host
    powershell -noexit
    

    我只是在第一个子目录(按字母顺序)返回已修改的内容。我没有获得任何其他子目录或文件的返回。

1 个答案:

答案 0 :(得分:1)

我会使用FileSystemWatcher .NET类型来监控目录。您应该能够使用Register-ObjectEvent命令挂钩Changed事件,并仅在事情发生变化时处理目录。