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