如何使用 PowerShell 更改文件和文件夹属性?

powershellmicrosoft technologiessoftware & coding更新于 2026/2/10 13:22:17

Windows 操作系统支持多种文件和文件夹属性。要检查文件和文件夹支持的属性,请使用 DOS 命令 attrib /?

您可以看到列出的属性,例如 Read-Only、Archive 等。您可以使用 PowerShell 设置这些属性。

例如,我们有一个名为 TestFile.txt 的文件,其属性为 ReadOnly,我们需要将其更改为 Archive。

PS C:\> (Get-ChildItem C:\Temp\TestFile.txt).Attributes
ReadOnly

更改属性代码 −

$file = Get-ChildItem C:\Temp\TestFile.txt
$file.Attributes = 'Archive'

因此,我们将属性从 ‘ReadOnly’ 设置为 ‘Archive’,当您检查时,该属性应该已更改。

PS C:\> (Get-ChildItem C:\Temp\TestFile.txt).Attributes
Archive

要设置多个属性,可以用逗号分隔值。例如:

$file = Get-ChildItem C:\Temp\TestFile.txt
$file.Attributes = 'Archive','ReadOnly'
(Get-ChildItem C:\Temp\TestFile.txt).Attributes
ReadOnly, Archive

您也可以使用类似的方法更改文件夹的属性。例如:

$folder = Get-Item C:\Temp
$folder.Attributes = 'Directory','Hidden'

我们现在将检查文件夹属性。由于此文件夹是隐藏的,因此我们需要使用 -Hidden 参数。

PS C:\> (Get-ChildItem C:\Temp\ -Hidden).Attributes
Hidden, Directory

要更改同一文件夹中多个文件的属性,您需要使用 foreach 循环。例如:

Get-ChildItem C:\Test1\ -Recurse | foreach{$_.Attributes = 'Hidden'}

当我们检查它们的值时,它们应该被隐藏。

PS C:\> Get-ChildItem C:\Test1 -Recurse -Force

Directory: C:\Test1

Mode      LastWriteTime     Length Name
----      -------------     ------ ----
---h--    8/28/2020 7:27 AM 11 File1.txt
---h--    8/28/2020 7:49 AM 11 File2.txt

-Recurse 参数用于从子文件夹中检索数据。如果您只需要更改父文件夹数据属性,请删除 -Recure 参数。


相关文章