gpt4 book ai didi

powershell - 将get-childitem传递到powershell中的选择字符串中

转载 作者:行者123 更新时间:2023-12-04 13:33:06 26 4
gpt4 key购买 nike

我正在整理一个大目录的文件,并且试图从ls命令的输出中选择单独的行并仅显示那些行,但是我得到了奇怪的结果,并且我对powershell不够熟悉,无法知道我在做什么错。

这种方法有效:

ls > data.txt
select-string 2012 data.txt
rm data.txt

但是创建一个文件只是为了读取我已经必须填写到文件中的数据对我来说似乎很浪费。我想将输出直接传递给select-string。

我已经尝试过这种方法:
ls | select-string 2012

但这不能给我适当的输出。

我的猜测是我需要将ls的输出转换为select-string可以使用的东西,但是我不知道该怎么做,甚至不知道这是否是正确的方法。

最佳答案

PowerShell是面向对象的,而不是像cmd这样的纯文本。如果要获取在2012年修改过的文件对象(行),请使用:

Get-ChildItem | Where-Object { $_.LastWriteTime.Year -eq 2012 }

如果要获取文件名中带有“2012”的文件对象,请尝试:
Get-ChildItem *2012*

使用时
ls | select-string 2012

您实际上是在列出 ls/ get-childitem的每个文件中搜索带有“2012”的行。

如果确实需要在 select-string的输出上使用 get-childitem,请尝试将其转换为字符串,然后分成几行,然后进行搜索。像这样:
(Get-ChildItem | Out-String) -split "`n" | Select-String 2012

关于powershell - 将get-childitem传递到powershell中的选择字符串中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15836541/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com