首页 > 解决方案 > 计算 2 个文件夹中同一文件之间的创建时间

问题描述

我需要测量在 2 个不同文件夹中创建的SAME文件的时间。

示例:folder1\test.txtfolder2\test.txt

用于Get-Date每个文件,以及它们之间的秒差。

该脚本需要继续运行并为每个文件创建一个日志,其中包含文件名和以秒为单位的时间差

###start-process PowerShell.exe -arg C:\Users\Smap\Documents\logs\StartMonitoring.ps1 -WindowStyle Hidden

### SET FOLDER TO WATCH + FILES TO WATCH + SUBFOLDERS YES/NO
$watcherStart = New-Object System.IO.FileSystemWatcher
$watcherEnd = New-Object System.IO.FileSystemWatcher
$watcherStart.Path = "C:\Users\Smap\Desktop\MATHEUS\entrada"
$watcherEnd.Path = "C:\Users\Smap\Desktop\MATHEUS\saida"
$watcherStart.Filter = "*.*"
$watcherEnd.Filter = "*.*"
###    $watcherStart.IncludeSubdirectories = $true
$watcherStart.EnableRaisingEvents = $true  
$watcherEnd.EnableRaisingEvents = $true  

### DEFINE ACTIONS AFTER AN EVENT IS DETECTED
$actionStart = { $namefileStart = $Event.SourceEventArgs.Name
                 $changeTypeStart = $Event.SourceEventArgs.ChangeType
                 $timeStart = Get-Date
}              

 $actionEnd = { $filepath = "C:\Users\Smap\Desktop\MATHEUS\log\log " + ($namefileStart) + ".txt"
                ###$filepath = "C:\Users\Smap\Desktop\MATHEUS\log\log.txt"
                $namefileEnd = $Event.SourceEventArgs.Name
                $changeTypeEnd = $Event.SourceEventArgs.ChangeType
                $timeEnd = Get-Date
                if ($namefileStart -eq $namefileEnd) {
                    $timeDiff = (NEW-TIMESPAN -Start $timeStart -End $timeEnd)
                    $logline = "$namefileStart, $namefileEnd, $timeStart, $timeEnd, $timeDiff"
                    Add-content $filepath -value $logline
                }
 }


### DECIDE WHICH EVENTS SHOULD BE WATCHED
Register-ObjectEvent $watcherStart "Created" -Action $actionStart
Register-ObjectEvent $watcherEnd "Created" -Action $actionEnd
###Register-ObjectEvent $watcher "Changed" -Action $action
###Register-ObjectEvent $watcher "Deleted" -Action $action
###Register-ObjectEvent $watcher "Renamed" -Action $action
while ($true) {sleep 5}`

标签: powershell

解决方案


推荐阅读