Get-ChildItem returns 脚本中没有项目,但可以从命令行运行

Get-ChildItem returns no items in script, but works from command line

我有一个执行某些处理的脚本,然后需要从一个文件夹中删除 10 天未修改的文件。

首先我得到 10 天前的日期:

$deleteDate = (Get-Date).AddDays(-10)

然后我尝试获取文件列表:

$deleteFiles = Get-ChildItem -Path $destinationPath | Where-Object { $_.LastWriteTime -le $deleteDate }

但是,这不会 return 任何项目(我输出 $deleteFiles.Length)。如果我 运行 完全相同的命令,首先从 powershell 命令行设置变量,它 returns 文件。

我试过添加 -Force 参数,但没有成功。

此目标文件夹仅包含文件或文件位于子文件夹中?

$del=Get-ChildItem -Path $destinationPath -recurse | Where-Object {!$_.PsIsContainer -and ($_.LastWriteTime -le $deleteDate) }

这将列出所有子文件夹 -recurse 中的文件,并且仅列出文件 !$_.PsIsContainer

这对我有用:

$destinationPath = "c:\temp"
$deleteDate = (Get-Date).AddDays(-10)
$del=Get-ChildItem -Path $destinationPath -recurse | Where-Object {!$_.PsIsContainer -and ($_.LastWriteTime -le $deleteDate) }
$del.length

和returns个文件。