PowerShell笔记-文件管理

发布时间:2019-07-25编辑:脚本学堂
PowerShell笔记,文件管理,powershell,powershell文件管理

假定文件夹为c:restored, 列出文件夹中所有文件:
get-childitem c:restored
注:get-childitem执行起来有点像dir,但是dir能够列出注册表中某特定键值的子键吗?先别急,我们慢慢来。:)
列出文件夹中所有文件,不包括后缀为tmp的文件:
get-childitem c:restored -exclude *.tmp
列出文件夹中所有文件,不包括后缀为tmp和temp的文件:
get-childitem c:restored -exclude *.tmp, *.temp
列出当前文件夹中所有文件,只包括后缀为doc和xls的文件:
get-childitem c:restored*.* -include *.doc, *.xls
列出当前文件夹以及所有子文件夹中所有文件,只包括后缀为pdf的文件:
get-childitem c:restored -recurse -include *.pdf
列出文件夹中所有文件,不包括后缀为tmp的文件、只显示文件名和长度:
get-childitem c:restored -exclude *.tmp | select-object name, length
列出文件夹中所有文件,不包括后缀为tmp的文件、显示所有属性、以列表方式输出:
get-childitem c:restored -exclude *.tmp | select-object * | format-list
改变当前目录位置到c:restored:
set-location c:restored
注:也可以用linuxjishu/14009.html target=_blank class=infotextkey>cd命令以及sl,这是set-location的别名
返回Home目录:
cd ~

新建一个文件夹:
new-item    c:restoredtest -type directory

验证文件夹(路径)是否已经存在:
test-path c:restoredtest
如果存在,Powershell返回True;否则返回false    

c:restored下面是否有bat文件也可以用上面的命令:
test-path c:restored*.bat
如果存在,powershell返回True;否则返回false

根据文件扩展名自动创建文件夹:
get-childitem c:restored | select-object extension | sort-object extension -unique | foreach-object {new-item ("c:restored"+$_.extension) -type directory}

根据文件扩展名移动文件:
get-childitem c:restored | where-object {$_.mode -notmatch "d"} | foreach-object {$b = "c:restored" + $_.extension; move-item $_.fullname $b}

假定工作目录为c:test,
列出工作目录及其子目录下所有文件:
get-childitem c:test -recurse

只列出目录和子目录名:
get-childitem c:test -recurse | where-object {$_.mode -match "d"}

列出工作目录及其子目录下所有文件,将输出结果保存到文本文件:
1) get-childitem c:test -recurse > c:testoutput.txt
2) get-childitem c:test -recurse | out-file c:testoutput.txt

查看文本内容:
get-content c:testoutput.txt

追加文件内容:
get-childitem c:test -recurse >> c:testoutput.txt

保存文件同时在屏幕上显示输出结果:
get-childitem c:test -recurse | tee-object c:testoutput2.txt

修改属性值(把c:test及其子目录中所有文件的LastWriteTime属性都改为一致):
get-childitem c:test -recurse | foreach-object {$b=get-date; $_.lastwritetime = $b}