使用PowerShell打开OneDrive中最新符合条件图片的问题
解决PowerShell一键打开OneDrive最新符合条件图片的问题
哈哈,太懂你想一键搞定的心情了!你的筛选逻辑已经很靠谱,问题就出在最后打开文件的环节——PowerShell里直接用.Open()不是调用系统默认程序打开文件的正确姿势,咱们来调整成单条命令搞定:
Get-ChildItem -Recurse -Include *.jpg,*.png | Where-Object { $_.CreationTime -ge [datetime]"2019-03-01" } | Sort-Object LastWriteTime -Descending | Select-Object -First 1 | Invoke-Item
给你拆解下优化和修正的点:
- 简化扩展名过滤:把原来的
-match正则判断换成-Include *.jpg,*.png,不仅更简洁,执行效率也更高,直接在遍历阶段就过滤掉非目标格式的文件。 - 修正日期判断逻辑:原来的
Year -ge 2019 -and Month -ge 03有个小坑——比如2020年1月的文件会被错误过滤掉(因为Month=1小于3)。换成直接和[datetime]"2019-03-01"比较,就能准确筛选出2019年3月1日及以后创建的文件。 - 正确打开文件:最后用
Invoke-Item是关键!它会调用系统默认的图片查看器来打开选中的文件,这才是你想要的“打开操作”——之前尝试的.Open()是打开文件流,不是调用外部程序打开哦。
额外补充:如果非要用FullName属性的写法(其实没必要,但满足你的好奇心)
你也可以把完整路径提取出来再传给打开命令,效果一样:
Invoke-Item -Path (Get-ChildItem -Recurse -Include *.jpg,*.png | Where-Object { $_.CreationTime -ge [datetime]"2019-03-01" } | Sort-Object LastWriteTime -Descending | Select-Object -ExpandProperty FullName -First 1)
内容的提问来源于stack exchange,提问作者user11383079
相关产品推荐
相关产品推荐

