Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.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,我想在目录中选择(例如)每个月的第9天制作的文件 我想出了这个密码: dir -Recurse -File | Where-Object {$_.CreationTime.Day -eq "09"} 但是,这会给我该目录中每天生成的每个文件 我不明白为什么这不起作用。 希望有人能帮助我 我怀疑这是因为您的比较运算符(尽管我无法首先复制您的问题)。由于Day属性是一个整数,因此应与类似类型进行比较: Get-ChildItem -File -Recurse | Where-Object

我想在目录中选择(例如)每个月的
第9天制作的文件

我想出了这个密码:

dir -Recurse -File | Where-Object {$_.CreationTime.Day -eq "09"} 
但是,这会给我该目录中每天生成的每个文件

我不明白为什么这不起作用。 希望有人能帮助我

我怀疑这是因为您的比较运算符(尽管我无法首先复制您的问题)。由于
Day
属性是一个整数,因此应与类似类型进行比较:

Get-ChildItem -File -Recurse |
    Where-Object { $PSItem.CreationTime.Day -eq 9 }

否则,您就只能依靠类型转换系统来正确比较字符串和整数。

只是重申一下他们的错误1,这可能是由于字符串
“09”
和int
9
的一些转换异常造成的,因为我无法重现这个问题(您发布的原始代码片段对我来说很好)

上面只返回第9天创建的任何内容的结果,并明确列出
名称、CreationTime、LastAccessTime、LastWriteTime

PS C:\Testing> Get-ChildItem -Recurse -File | Where-Object {$_.CreationTime.Day -eq 9} | Format-List Name,CreationTime,LastAccessTime,LastWriteTime


Name           : csv.txt
CreationTime   : 09/07/2018 17:37:13
LastAccessTime : 09/07/2018 17:37:13
LastWriteTime  : 23/07/2018 22:41:36

…不过对我来说很有用。。由于
.Day
返回一个整数,因此您不应该将其与字符串进行比较,这样PowerShell就不必将其转换为int。可能您将
LastWriteTime
(您在资源管理器中看到的)与
CreationTime
?@混淆了,因为它确实与LastWriteTime一起工作,但这不是我想要指定的搜索目标。它们必须在我提交的那一天创建。好的,但是请记住,在复制操作之后,CreationTime可能已经更改。例如,如果您将一些项目从其原始位置(它们将具有不同的创建时间)复制到新目标,则所有这些项目的
CreationTime
都将设置为当前时间。也许这就是为什么您的原始代码会全部返回它们的原因?
dir-Recurse-File | Where Object{$$\ CreationTime.Day-eq 9}| fl Name、CreationTime、LastAccessTime、LastWriteTime
这对我来说很好,只返回第9天创建的任何内容的结果。@Jacob您的评论效果最好,但因为你把它作为评论而不是回答,我不能把这个问题标记为回答。你能把你的评论作为回答吗?:)
PS C:\Testing> Get-ChildItem -Recurse -File | Where-Object {$_.CreationTime.Day -eq 9} | Format-List Name,CreationTime,LastAccessTime,LastWriteTime


Name           : csv.txt
CreationTime   : 09/07/2018 17:37:13
LastAccessTime : 09/07/2018 17:37:13
LastWriteTime  : 23/07/2018 22:41:36