Powershell Get-Content的行为有所不同,具体取决于行数

时间:2015-12-19 14:22:27

标签: powershell cmdlet

我的get-content cmdlet出了问题,我不明白为什么它会这样做。我相信有人可以帮助我。

我有两个文本文件。 $ file1和$ file2。这两个文件都有内容。我按如下方式阅读:

$content = get-content $File1
$content = $content + (Get-Content $File2)

现在假设,$ file1有3行,$ file2有4行。 echo $ conent给我看了7行。好。 让我们说$ file1有1行,$ file2有3行。 echo $ conent给我看了4行。也很好。

但是,当我做的时候

foreach ($i in $content) 

它变得非常有趣。在示例1中,foreach循环运行7次。在示例2中,foreach循环仅运行一次。它确实将两个文件的所有行同时放在$ i中。

$ file2中有多少行并不重要但是如果$ File1中有零或一行,则foreach认为只有一行。

编辑:当我向$ file1添加空白行时,一切都顺利进行。

1 个答案:

答案 0 :(得分:0)

@Matt在评论中解决了这个问题。

读取第一个文件的正确代码是:$content = @(get-content $File1)