在此處的執行緒之后,我嘗試在 PowerShell 7.2 中寫入輸出檔案:
# [String] $csvFile = "output.csv"
[String] $csvFile = ".\output.csv"
$stream = New-Object IO.StreamWriter $csvFile, $true
$stream.WriteLine("Some, text")
$stream.Close()
該檔案未創建。另外,如果我事先創建檔案,腳本不會寫入它。我錯過了什么?我可以讓它作業,Out-File但流很大,我更喜歡 Net 方法。
這是shell中的權限問題嗎?
uj5u.com熱心網友回復:
我的首選方法:
# create a new file using the provider cmdlets
$newFile = New-Item -Name output.csv -ItemType File
try {
# open a writable FileStream
$fileStream = $newFile.OpenWrite()
# create stream writer
$streamWriter = [System.IO.StreamWriter]::new($fileStream)
# write to stream
$streamWriter.WriteLine("Some, text")
}
finally {
# clean up
$streamWriter.Dispose()
$fileStream.Dispose()
}
對于現有檔案,使用Get-Item或Get-ChildItem來查找現有檔案系統項。
讓提供程式 cmdlet 處理檔案的優點是您無需擔心限定相對路徑,.\output.csv將相對于 shell 中的當前位置進行決議
uj5u.com熱心網友回復:
使用 .Net 類時需要使用絕對路徑。
嘗試
# get the full path for the output file
$fileOut = [System.IO.Path]::GetFullPath([System.IO.Path]::Combine($pwd.ProviderPath, "output.csv"))
$stream = [System.IO.StreamWriter]::new($fileOut, $true) # $true for Append
$stream.WriteLine("Some, text")
$stream.Dispose()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/405517.html
標籤:
