我已经阅读了这里引用的所有文章,但我在代码中遗漏了一些明显的东西。我有以下文本文件:
d:/mev/doc1.xls
d:/mev/doc2.xls
d:/mev/doc3.xls
d:/mev/doc4.doc
d:/mev/doc5.doc我正在尝试解析出所有以.xls作为扩展名的文件。解析代码似乎可以正常工作,但它并没有遍历整个文件。下面是我的代码:
$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)
} 下面是输出:
PS Q:\mev> .\read3.ps1
doc1.xls
d:/m我到底错过了什么?
提前感谢您的帮助!
发布于 2021-09-11 20:09:27
您需要删除-Raw开关,因为您希望遍历文件中的每一行。使用-Raw,文件将被读取为单个多行字符串,而不是数组。
还有,为什么这么难呢?如果我理解正确的话,这将返回您要查找的内容:
Get-Content "Q:\mev\pattern.txt" |
Where-Object { $_ -like '*.xls' }如果您只需要文件名而不带路径,则将| ForEach-Object { [System.IO.Path]::GetFileName($_)}附加到该文件名后面。
https://stackoverflow.com/questions/69146324
复制相似问题