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也应当注意。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM