本文介绍一个PowerShell中如何设置文件属性。我们知道文件的属性有只读、隐藏、系统、存档和无内容索引等5个,只读和隐藏用得比较多,另外三个用得比较少。
一、文件的属性
不知道大家有没有用过attrib.exe这个cmd下的小程序,它可以用来设置文件的属性。建议大家先去了解一下这个attrib小程序。可以参考文章:使用attrib设置文件只读、隐藏和系统属性
下面我们来看看如何在PowerShell中设置文件只读、隐藏和系统属性。
我们知道,获取一个文件对象可以使用Get-Item这个cmdlet。但我们来看看下面的操作:
PS C:\Users\splaybow> get-item d:\2.txt Get-Item : 找不到项 D:\2.txt。 所在位置 行:1 字符: 9 + get-item <<<< d:\2.txt + CategoryInfo : ObjectNotFound: (D:\2.txt:String) [Get-Item], IO Exception + FullyQualifiedErrorId : ItemNotFound,Microsoft.PowerShell.Commands.GetIt emCommand
PS C:\Users\splaybow> attrib -h -s d:\2.txt PS C:\Users\splaybow> get-item d:\2.txt 目录: D:\ Mode LastWriteTime Length Name ---- ------------- ------ ---- -ar-- 2013/11/11 20:04 6 2.txt
PS C:\Users\splaybow> $file = Get-Item d:\2.txt PS C:\Users\splaybow> $file.Mode -ar--
二、设置文件属性
现在我们测试去掉文件上的只读属性,要用到文件对象的IsReadOnly属性。
PS C:\Users\splaybow> $file.IsReadOnly = $false PS C:\Users\splaybow> $file.Mode -a---
聪明如洪哥者,一定会想,隐藏属性是不是可以通过$file对象的IsHidden来控制呢?呵呵,我们想错了。要想知道$file对象有哪些属性和方法,可以使用“$file | Get-Member”这个命令来查看。当然,任何对象,我们想知道它有哪些方法和属性,都可以通过“<对象变量> | Get-Memeber”的方式去获取。
不要扯远了,如何设置只读外的其它属性呢,那就只能使用Attributes属性了。且看下面的例子:
PS C:\Users\splaybow> $file.Attributes = "Readonly","system","notcontentindexed","hidden","archive" PS C:\Users\splaybow> $file.mode -arhs PS C:\Users\splaybow> $file.Attributes ReadOnly, Hidden, System, Archive, NotContentIndexed
三、修改文件属性
上面讲的是一次性为文件设置一组属性,这样很简单,但也很粗暴。如果只想给他增加一个ReadOnly属性,其它的原属性不变,怎么操作呢?
在PowerShell中,可以将文件的属性当作一个二进制数组,使用二进制的按位或(bOR)操作符来运算一下就好了。且看例子:
PS C:\Users\splaybow> $file = Get-Item d:\2.txt PS C:\Users\splaybow> $file.Attributes="hidden" PS C:\Users\splaybow> $readonly = [System.IO.FileAttributes] "ReadOnly" PS C:\Users\splaybow> $file.Attributes=$file.Attributes -bor $readonly PS C:\Users\splaybow> $file.Attributes ReadOnly, Hidden
关于PowerShell设置文件只读、隐藏和系统属性,本文就介绍这么多,希望对您有所帮助,谢谢!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#nhooo.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。