Get-ChildItem在脚本中不返回任何项目,但可以从命令行运行

时间:2018-09-18 12:46:03

标签: powershell-v4.0 get-childitem

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

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

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

然后我尝试使用以下方法获取文件列表:

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

但是,这不返回任何项目(我输出$deleteFiles.Length)。如果我运行完全相同的命令,请先从powershell命令行设置变量,然后返回文件。

我尝试添加-Force参数,但不走运。

1 个答案:

答案 0 :(得分:0)

此目标文件夹仅包含文件还是子文件夹中的文件?

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

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

这对我有用:

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

并返回文件数。