PowerShell笔记 磁盘与文件管理相关

发布时间:2020-05-23编辑:脚本学堂
PowerShell笔记,磁盘与文件管理,powershell,powershell命令

把c:restored映射为x盘:
new-psdrive x -psprovider filesystem -root c:restored

把以下注册表键值映射为y盘:
new-psdrive -name y -psprovider    registry -root HKCU:SoftwareMicrosoftWindowsCurrentVersion

列出别名,根据定义排序:
get-alias | sort-object definition

还是假定c:restored为我们执行操作的文件夹,
列出文件夹中所有文件,以大小、文件名排序:
get-childitem c:restored | sort-object length, name

列出文件夹中所有文件,以大小、文件名排序,倒序排列:
get-childitem c:restored | sort-object length, name -descending

列出文件夹中所有文件,以大小、文件名排序,倒序排列,只显示前20个:
get-childitem c:restored | sort-object length, name -descending | select-object -first 20

列出文件夹中所有文件,以大小、文件名排序,倒序排列,只显示后20个:
get-childitem c:restored | sort-object length, name -descending | select-object -last 20

察看对象的属性和方法:
get-childitem c:restored | get-member

c:restored目录里每种文件各有多少?
get-childitem c:restored | group-object extension

根据文件创建的年、月分组:
get-childitem c:restored | group-object {$_.CreationTime.Year}, {$_.CreationTime.Month}

c:restored目录里文件的平均大小?总的大小?最大的文件大小?最小的文件大小?
get-childitem c:restored | measure-object length -average -sum -maximum -minimum

只总的大小?
(get-childitem c:restored | measure-object length -sum).sum

注:比较一下这个命令和上述两个命令输出结果的不同:
get-childitem c:restored | measure-object length -sum

删除所有.tmp文件:
remove-item c:restored*.tmp

删除所有大于1M的文件:
get-childitem c:restored | where-object {$_.length -gt 1048576} | foreach-object {remove-item $_.fullname}
注:除了-gt,还有-lt, -le, -ge, -eq, -ne, -contains, -notcontains, -like, -notlike, -match, -notmatch这些参数可用,试试看他们各有啥作用。对了,如果有大小写敏感的要求,试着在这些参数前加c,例如-cgt。

Powershell理解KB, MB和GB,上面的命令可以简写成:
get-childitem c:restored | where-object {$_.length -gt 1MB} | foreach-object {remove-item $_.fullname}

powershell也懂得:
1MB + 1MB