当名称以 ~ 开头时,Powershell 设置属性 sh

Powershell set Attributes sh when name starts with ~

我需要编写一个脚本,在数百个目录中递归,如果找到以“~”开头的文件,则应在该文件中设置隐藏和系统属性。

到目前为止我得到了这个:

Get-ChildItem C:\test\~* - Recurse | foreach {$_.Attributes = 'Hidden, System'}

但它似乎只更改了第一个文件。

做一些类似 dir c:\ -recurse | ? Name -match "~" 的事情,让你们都知道 ~ 。然后像你一样设置属性。

  • 使用 -Filter 参数查找以 ~ 开头的文件。
  • 添加 -File 开关以排除目录。
  • 去掉-Recurse之间的space

这应该有效:

Get-ChildItem 'C:\test\' -Filter '~*' -Recurse -File | foreach {
    $_.Attributes = 'Hidden, System'
}