我试图让它通过一个目录递归,并且只包含.pdf文件。然后返回最近修改过的3个.pdf,并将它们的每个(完整)文件名放入各自的变量中。
这是我到目前为止的代码-
$Directory="C:\PDFs"
Get-ChildItem -path $Directory -recurse -include *.pdf | sort-object -Property LastWriteTime -Descending | select-object -First 3 | ForEach-Object
{
Write-Host -FilePath $_.fullname
}但是,当我运行脚本时,它要求我为脚本的ForEach部分提供参数-这让我得出结论,要么命令没有按照应该的方式进行管道传输,要么命令没有正确使用命令。
发布于 2013-01-24 22:40:32
删除foreach-object之后的enter
$Directory="C:\PDFs"
Get-ChildItem -path $Directory -recurse -include *.pdf | sort-object -Property LastWriteTime -Descending | select-object -First 3 | ForEach-Object {
Write-Host -FilePath $_.fullname }你的代码中有一个拼写错误:
** Get-ChildItem =path **发布于 2013-01-24 22:40:35
这可能是因为ForEach-Object的脚本块在新行上。在PowerShell中,您需要使用反引号字符(`)来告诉PowerShell命令将继续到下一行。试试这个:
$Directory="C:\PDFs"
Get-ChildItem -path $Directory -recurse -include *.pdf | sort-object -Property LastWriteTime -Descending | select-object -First 3 | ForEach-Object `
{
Write-Host -FilePath $_.fullname
}https://stackoverflow.com/questions/14503733
复制相似问题