我正在寻找创建一个powershell脚本,它将查看文件或任何文件上lasttimewrite文件夹的内容,并输出文件夹和时间戳。用于在具有raoming配置文件的终端服务器环境中识别配置文件,但文件夹lastwrite time用于文件夹本身,而每次用户登录内部的内容都会被触及并加上时间戳。
我尝试了以下
Get-ChildItem -Recurse | where-object {$_.lastwritetime -gt (get-date).addDays(-1)} | Foreach-Object { $_.Directory } | sort-object name -descending | export-csv c:\lists.csv
我已经尝试了几次迭代,这似乎有效
get-childitem -recurse | where-object {$_.name -eq "Pending"} |
where-object {$_.lastwritetime -gt (get-date).addDays(-1)} |
where-object {$_.PSIsContainer} |
foreach {$_.Parent} | foreach {$_.name}
现在唯一的问题是输出显示“Pending”文件夹中的lastwritetime
答案 0 :(得分:1)
我不完全确定,如果我的问题是对的,但是我的小脚本会显示所有项目,在最后一天和更改时间更改了+目录:
$directories = (Get-ChildItem -Path C:\test -Directory).FullName
$directories | foreach {if (($_.lastwritetime -gt (get-date).adddays(-1)) -or ((get-childitem -path $_ -Recurse).lastwritetime -gt (get-date).adddays(-1))) {
$itemname = (Get-ChildItem -Path $_ -Recurse | where {$_.LastWriteTime -gt (get-date).AddDays(-1)}).BaseName
$itemtime = (Get-ChildItem -Path $_ -Recurse | where {$_.LastWriteTime -gt (get-date).AddDays(-1)}).LastWriteTime
$_ >> C:\timestamp.txt; $itemname >> C:\timestamp.txt; $itemtime >> C:\timestamp.txt;
}
}
我从我的小剧本那里得到了回复:
C:\test\DIR - Copy (2)
test (2)
test
test2 (2)
test2
Wednesday, 17. July 2013 17:49:43
Wednesday, 17. July 2013 17:49:43
Wednesday, 17. July 2013 17:49:43
Wednesday, 17. July 2013 17:49:43
我不知道你要检查多少文件,所以我不能说这是否会很快。
编辑:
$path = C:\test
gci $PATH | sort LastWriteTime | select -last 1
告诉我这个:
Directory: C:\test
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 18.07.2013 09:37 Neuer Ordner - Kopie (2)
答案 1 :(得分:0)
$path = get-childitem | foreach {$_.name}
$directory = $path | foreach {$_+"/"}
get-childitem -path $directory | where-object {$_.name -eq "Pending"} |
where-object {$_.lastwritetime -gt "12/30/2012"} |
where-object {$_.PSIsContainer} |
foreach {$_.parent.name + "," + $_.lastwritetime} >
c:\users\opr9823\2013users.csv
这为我做了