我只需要在当前月份的第一天和当前月份的最后一天之间选择文件夹中的文件。我试过:
$curr_month = (Get-Date -format "MM/01/yyyy 0:00:00")
$next_month = (Get-Date $curr_moth).addmonths(1)
Get-ChildItem "\\logserver\C$\WINDOWS\SYSTEM32\LOGFILES\" -Recurse -include @("*.log") |
where {$_.CreationTime -ge $curr_month -and
$_.CreationTime -lt $next_month
}我只获得第一个日志文件并继续出错:
Get-ChildItem : The specified network name is no longer available.
At line:3 char:18
+ Get-ChildItem <<<< "\\logserver\C$\WINDOWS\SYSTEM32\LOGFILES\" -Recurse -include @("*.log") |
+ CategoryInfo : ReadError: (\\logserver\C$\WI...ES\WMI\RtBackup:String) [Get-ChildItem], IOException
+ FullyQualifiedErrorId : DirIOError,Microsoft.PowerShell.Commands.GetChildItemCommand第二个问题:仅从路径的第一级(没有深度递归)。
发布于 2014-07-15 12:30:44
$path = "\\logserver\C$\WINDOWS\SYSTEM32\LOGFILES"
$Include=@("*.log")
$cntDate = Get-Date
# First day of the current month
$firstDayMonth = Get-Date -Day 1 -Month $cntDate.Month -Year $cntDate.Year -Hour 0 -Minute 0 -Second 0
# Last day of the current month
$lastDayOfMonth = (($firstDayMonth).AddMonths(1).AddSeconds(-1))
$firstDayMonth
$lastDayOfMonth
Get-ChildItem -Path $path -recurse -include "$Include" |
where {$_.CreationTime -ge $firstDayMonth -and
$_.CreationTime -lt $lastDayOfMonth
}我用另一个UNC路径测试了它,它工作了!因此,您给出的示例"C:\Windows\System32\LogFiles"仅可供系统访问。
https://stackoverflow.com/questions/24751417
复制相似问题