You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将PowerShell模拟ls -ltr|grep的结果输出到文件并自动打开

PowerShell 输出结果到文件并打开的解决办法

先修正你的查询命令

你当前的命令存在语法混乱,正确模拟 Linux ls -ltr | grep 'string'(按修改时间从旧到新筛选含指定字符串的 HTML 文件)的命令如下:

# 仅当前目录
Get-ChildItem "C:\www\root\*.html" -Sort LastWriteTime | Select-String "string" | Select-Object -Unique Path

# 递归包含子目录
Get-ChildItem "C:\www\root\*.html" -Recurse -Sort LastWriteTime | Select-String "string" | Select-Object -Unique Path

输出到文件并立即打开的正确方法

之前用Write-Output -Path写入失败是因为该参数并非用于文件写入,以下是可行方案:

基础版(直接输出+打开)

# 执行查询并输出到文件
Get-ChildItem "C:\www\root\*.html" -Sort LastWriteTime | Select-String "string" | Select-Object -Unique Path | Out-File -FilePath "C:\temp\output.txt" -Encoding utf8

# 立即打开生成的文件
Invoke-Item "C:\temp\output.txt"

增强版(自动创建目录)

如果C:\temp目录不存在,上面的命令会报错,可加入目录检查逻辑:

$outputFile = "C:\temp\output.txt"
$outputDir = Split-Path $outputFile

# 检查目录是否存在,不存在则创建
if (-not (Test-Path $outputDir)) {
    New-Item $outputDir -ItemType Directory | Out-Null
}

# 执行查询并写入文件
Get-ChildItem "C:\www\root\*.html" -Sort LastWriteTime | Select-String "string" | Select-Object -Unique Path | Out-File -FilePath $outputFile -Encoding utf8

# 打开文件
Invoke-Item $outputFile

简化写法(用重定向运算符)

也可以用 PowerShell 的重定向符号>直接输出:

(Get-ChildItem "C:\www\root\*.html" -Sort LastWriteTime | Select-String "string" | Select-Object -Unique Path) > "C:\temp\output.txt"
Invoke-Item "C:\temp\output.txt"

内容的提问来源于stack exchange,提问作者capser

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 13:25:15