使用 PowerShell 脚本以分钟为单位查找时差

sur*_*dra 4 windows powershell

我试图找到文件的上次更新时间和当前时间之间的时差。如何从输出中提取 TotalMinutes 数据?

$Date = Get-Date
$Files = gci "C:\Users\ABCD\Documents\command.txt"
ForEach ($File in $Files){
    $FileDate = $File.LastWriteTime
}
$DURATION=$Date-$FileDate
Echo $DURATION

Output is coming as below
Days              : 0
Hours             : 2
Minutes           : 21
Seconds           : 37
Milliseconds      : 311
Ticks             : 84973115857
TotalDays         : 0.0983485137233796
TotalHours        : 2.36036432936111
TotalMinutes      : 141.621859761667
TotalSeconds      : 8497.3115857
TotalMilliseconds : 8497311.5857
Run Code Online (Sandbox Code Playgroud)

xXh*_*L7Z 5

获得单个文件后,您将不需要循环:

$Files = gci "C:\Users\ABCD\Documents\command.txt"
ForEach ($File in $Files){
    $FileDate = $File.LastWriteTime
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,$Files也可能是$File,使循环完全冗余:

$File = gci "C:\Users\ABCD\Documents\command.txt"
$FileDate = $File.LastWriteTime
Run Code Online (Sandbox Code Playgroud)

以与提取完全相同的方式LastWriteTime,您可以获得TotalMinutes

$Date = Get-Date
$DURATION = $Date - $FileDate
$DURATION.TotalMinutes
Run Code Online (Sandbox Code Playgroud)


Tra*_*z13 2

这是一个完整的答案:

$Date = Get-Date
$Files = gci "C:\Users\ABCD\Documents\command.txt"
ForEach ($File in $Files){
    $FileDate = $File.LastWriteTime
}
$DURATION=$Date-$FileDate
Write-Host "$($DURATION.TotalMinutes)"
Run Code Online (Sandbox Code Playgroud)