我只能說,使用PowerShell來讀取文本文件實在是一件太簡單的事情了。
Get-Content,獲取指定位置的項的內容。
語法:Get-Content [-Path] <文件路徑>
[-Path]由方括號引起,表示可以寫,也可以不寫;不寫則默認后面是文件路徑,寫了就指名道姓的說后面是文件路徑。
直接運行這樣一個命令,PowerShell將會把文件的內容輸出到控制臺上,如果你是想看看文件的內容,那這樣做就Perfect!
但有時候,你想玩點高難度的運作——想把文件翻開來對里面的內容進行修改,那后面你可以用管道來把它傳出去,或者直接把它賦值給一個變量。舉例如下:
代碼如下:$file = Get-Content "d:/1.txt"
Get-Content "d:/1.txt" | %{Write-Host $_.Replace("日","太陽")} #這樣就可以實現把d:/1.txt的內容,逐一輸出,并把“日”字,替換為太陽。
獲取文件的前N行,這也是一個有趣的事。可以用一句PowerShell來搞定。舉例如下:
代碼如下:
Get-Content d:/1.txt -totalcount 100 | set-Content top100.txt
說明:這里的Set-Content top100.txt是把前面一個語句的結果,寫一個新的文件——top100.txt
如果這個時候,你想獲取文件的第100行,你會不會想到去做一個很復雜的循環?如果是,那說明你有很好的編程素養。但是PowerShell告訴你不用如此麻煩。舉例如下:
代碼如下:(Get-Content d:/1.txt -TotalCount 100)[-1]
說明:啥!你看到了啥?!如果你簡單的看()[-1],那是不是像數組呢?-1表示最后一個數組元素,那就表示前100行的最后一行,那是不是第100行呢?!
最后要說一下,這個命令返回的是一個對象數組,可以用ForEach-Object(別名是%)去遍歷它。非常方便,前面你應該已經看到“太陽”的例子了!
新聞熱點
疑難解答