首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用IndexOf在Powershell中解析文本

使用IndexOf在Powershell中解析文本
EN

Stack Overflow用户
提问于 2021-09-11 20:00:56
回答 1查看 68关注 0票数 0

我已经阅读了这里引用的所有文章,但我在代码中遗漏了一些明显的东西。我有以下文本文件:

代码语言:javascript
复制
d:/mev/doc1.xls
d:/mev/doc2.xls
d:/mev/doc3.xls
d:/mev/doc4.doc
d:/mev/doc5.doc

我正在尝试解析出所有以.xls作为扩展名的文件。解析代码似乎可以正常工作,但它并没有遍历整个文件。下面是我的代码:

代码语言:javascript
复制
$array = Get-Content "Q:\mev\pattern.txt" -raw
foreach($item in $array)
{     
    $firstref = $array.IndexOf("/mev/")
    $lastref = $array.IndexOf("xls")
    $array.Substring($firstindex+7,$lastref+2)
} 

下面是输出:

代码语言:javascript
复制
PS Q:\mev> .\read3.ps1
doc1.xls
d:/m

我到底错过了什么?

提前感谢您的帮助!

EN

回答 1

Stack Overflow用户

发布于 2021-09-11 20:09:27

您需要删除-Raw开关,因为您希望遍历文件中的每一行。使用-Raw,文件将被读取为单个多行字符串,而不是数组。

还有,为什么这么难呢?如果我理解正确的话,这将返回您要查找的内容:

代码语言:javascript
复制
Get-Content "Q:\mev\pattern.txt" |
Where-Object { $_ -like '*.xls' }

如果您只需要文件名而不带路径,则将| ForEach-Object { [System.IO.Path]::GetFileName($_)}附加到该文件名后面。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69146324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档