Powershell中使用Get-Content读取文件内容时的注意点

工作中,经常用到Powershell中的Get-Content来读取日志内容。

常用到以下代码:

1 $content = Get-Content -Path "F:\temp\test\01.txt"
2 for($i=0; $i -lt $content.Count; $i++) {
3     Write-Host $content[$i]    
4 }
View Code

● 当被读取的文件内容超过1行时,以上代码是不存在问题的。

输出结果如下:

● 当被读取的文件内容只有1行时,运行脚本之后会发现脚本不输出任何内容!

原因在于当文件内容只有1行时,Powershell会默认的将$content当成字符串而不是字符串数组。

只有1行:

超过1行:

解决方法:

方案1:

1 $content = @(Get-Content -Path "F:\temp\test\01.txt")
View Code

使用 @() 将Get-Content命令括起来之后,当文件内容被转换成为数组:

输出如下结果:

方案2:

1 foreach($line in $content) {
2     Write-Host $line
3 }
View Code

果断正常输出结果。

同理Get-ChildItem也应当注意。

posted @ 2013-09-29 17:29  大心臟  阅读(8079)  评论(0编辑  收藏  举报