我一直在尋找一段時間,似乎無法理解爲什麼會發生這種情況。嘗試覆蓋隱藏文件時拒絕的權限
我有一個維護文件的腳本。我想保留該文件隱藏,但更改文件屬性導致權限問題,當試圖覆蓋它。
設置是這樣的:
"Test Text" | Out-file 'C:\Test\Test.txt' -Force
Set-ItemProperty 'C:\Test\Test.txt' -name Attributes -Value "Hidden"
現在,如果我嘗試覆蓋它,像這樣我得到以下錯誤:
"New Text" | Out-file 'C:\Test\Test.txt' -Force
Out-file : Access to the path 'C:\Test\Test.txt' is denied. At line:1 char:15 + "Test Text" | Out-file 'C:\Test\Test.txt' -Force + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : OpenError: (:) [Out-File], UnauthorizedAccessException + FullyQualifiedErrorId : FileOpenFailure,Microsoft.PowerShell.Commands.OutFileCommand
不過權限似乎並不成爲問題因爲我可以獲取內容,而且我可以很好地刪除文件。
Get-Content 'C:\Test\Test.txt'
rm 'C:\Test\Test.txt' -force
解決方法是刪除文件,然後寫我的新的,但我寧願維持現有的文件,如果可能,只是添加到它。
謝謝,這很有用。我沒有考慮過設置和添加內容的cmdlet。我使用的實際cmdlet是具有相同權限問題的Export-Clixml。我可能會看到我是否可以抓住xml並使用set-content編寫它。 – malexander
您可以隨時使用ConvertTo-Xml | Set-Content – KevinD
是的,這是我的嘗試,理論上聽起來不錯,但Export-Clixml cmdlet會生成特殊的格式。使用ConvertTo-XML,您將失去使用Import-clixml稍後導入對象所需的格式。 – malexander