powershell - 尝试覆盖隐藏文件时权限被拒绝

标签 powershell powershell-3.0

我已经搜索了一段时间,似乎无法理解为什么会发生这种情况。

我有一个维护文件的脚本。我想隐藏该文件,但是在尝试覆盖它时更改文件属性会导致权限问题。

设置是这样的:

"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

解决方法是删除文件,然后编写我的新文件,但我更愿意保留现有文件,并在可能的情况下添加到其中。

最佳答案

必须先删除隐藏文件,然后才能将它们“覆盖”为 Out-File确实(没有 -Append 参数)。 Add-ContentSet-Content通过修改现有文件的内容而不覆盖它来解决这个问题。见 docs on the FileMode.Create枚举值。

关于powershell - 尝试覆盖隐藏文件时权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20155375/

相关文章:

powershell - 使用 powershell 启动/停止 IIS 网站时的权限

powershell - Powershell-每天分配一个变量

powershell - 在 VSTS 中发布失败时向所有开发人员发送通知(上一个 VSO)

powershell - 如何将windbgx.exe的输出记录到文件中?

windows - 在 Windows Power shell 脚本中编写 tsv 文件的优化方法是什么?

powershell - Powershell-替换领先路径信息

PowerShell 从远程 PC 删除桌面项目

powershell - 在 Powershell 中解析 YAML 文件

powershell - 如何使用powershell删除ADFS 3.0登录页面的 Logo ?

powershell - 通过 powershell 运行 quser 命令时有什么方法可以摆脱字段