0

我每天都会将一些文件保存到特定文件夹(xls)中。有没有一种方法可以让 powershell 将每个文件收集到一个不同的变量中(可能是 2 个文件,也可能是 5 个),然后查看每个文件中是否有超过 2 行的文本?

4

2 回答 2

1

我认为您不一定需要将它们收集到一个变量中,这取决于您找到文件后想要做什么。

基本示例:如果我创建了 3 个名为 Test1.txt、Test2.txt、Test3.txt 的文本文件。仅使用基本的“行 x”来描述行号。一个说Test1.txt的内容是


Line 1
Line 2
Line 3

Test2.txt 停在“第 2 行”,然后 Test3.txt 只有“第 1 行”。在这种情况下可以使用的单线解决方案,它只会输出多于 2 行的名称:


dir *.txt | foreach {if ((Get-Content $_).Count -gt 2) {$_.Name}

此代码的输出为我提供了 Test1.txt。

在您的情况下,您可以dir对“*.xls”或您正在使用的任何文件扩展名执行命令。

于 2012-04-16T15:51:59.163 回答
0

这是一段很棒的脚本。我需要添加第二个项目,它也是文件中的最后一行,这就是我完成的方式。再次非常感谢!

目录 *.log | foreach {if ((Get-Content $ ).Count -gt 1) {$ .Name + ", " +(Get-Content $_)[-1]} }

于 2013-05-16T13:02:24.667 回答