我需要测量在2个不同文件夹中创建的 SAME 文件的时间。
示例:folder1\test.txt
和folder2\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}`