Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 如何计算本周修改的文件数?_Powershell - Fatal编程技术网

Powershell 如何计算本周修改的文件数?

Powershell 如何计算本周修改的文件数?,powershell,Powershell,我正在尝试计算一个目录中的文件,该目录的日期修改为本周从周一12:00:01到周日。我希望脚本在星期一上午12:00:01重置。我已经放弃了下面的例子几次,努力写我自己的,但这一个似乎是一个良好的开端 以下是我目前掌握的情况: $dow = "Monday" $today = (Get-Date).DayOfWeek $FolderResults = (Get-ChildItem -Path C:\Temp -Filter *.* | Where-Object { $_.

我正在尝试计算一个目录中的文件,该目录的日期修改为本周从周一12:00:01到周日。我希望脚本在星期一上午12:00:01重置。我已经放弃了下面的例子几次,努力写我自己的,但这一个似乎是一个良好的开端

以下是我目前掌握的情况:

$dow = "Monday"
$today = (Get-Date).DayOfWeek
$FolderResults = (Get-ChildItem -Path C:\Temp -Filter *.* |
    Where-Object {
        $_.LastWriteTime.DayOfWeek -eq $dow -AND $_.LastWriteTime.DayOfWeek -eq $today
    }).Count
状况

$_.LastWriteTime.DayOfWeek -eq $dow -AND $_.LastWriteTime.DayOfWeek -eq $today
将只提供在星期一修改的文件,并且仅当它实际上是星期一时

可以使用DayOfWeek属性的数值来计算时间范围

$today   = (Get-Date).Date                     # current date, 0:00:00
$offset  = ($today.DayOfWeek.value__ + 6) % 7  # number of days since Monday
$refdate = $today.AddDays(-$offset)            # most recent Monday, 0:00:00

$num = Get-ChildItem -Path 'C:\Temp' -Filter *.* |
       Where-Object { $_.LastWriteTime -gt $refdate } |
       Measure-Object |
       Select-Object -Expand Count
状况

$_.LastWriteTime.DayOfWeek -eq $dow -AND $_.LastWriteTime.DayOfWeek -eq $today
将只提供在星期一修改的文件,并且仅当它实际上是星期一时

可以使用DayOfWeek属性的数值来计算时间范围

$today   = (Get-Date).Date                     # current date, 0:00:00
$offset  = ($today.DayOfWeek.value__ + 6) % 7  # number of days since Monday
$refdate = $today.AddDays(-$offset)            # most recent Monday, 0:00:00

$num = Get-ChildItem -Path 'C:\Temp' -Filter *.* |
       Where-Object { $_.LastWriteTime -gt $refdate } |
       Measure-Object |
       Select-Object -Expand Count

DayOfWeek是一个枚举星期日=0,星期一=1,以此类推

您可以利用它来计算上周一的日期:

$LastMonday = ((Get-Date).AddDays(-(6 + (get-date).DayOfWeek) % 7)).date
然后:


DayOfWeek是一个枚举星期日=0,星期一=1,以此类推

您可以利用它来计算上周一的日期:

$LastMonday = ((Get-Date).AddDays(-(6 + (get-date).DayOfWeek) % 7)).date
然后:


+我打算在周一之前用Do/Until建议代码进行检查,但这要干净得多,我在Get Member上看到了value,但我不认为我可以这样使用它。+1打算在周一之前用Do/Until建议代码进行检查,但这要干净得多,我看到了Get Member的价值,但我认为我不能像那样使用它。。