PowerShell中使用Get-ChildItem命令读取目录、文件列表使用例子和小技巧
本文介绍一个powershell中使用get-childitem这个cmdlet来获取目录下的文件列表。get-childitem是获取子项目的意思,可以获取一个目录下的文件和子目录。
在dos系统下,我们想查看一个目录下有哪些子目录和文件,我们可以通过dir命令来实现。在powershell中,dir命令貌似仍然可用。但洪哥告诉你,这个dir已经不是cmd.exe中的那个dir了,它是get-childitem这个cmdlet的别名。也就是说,使用get-childitem和使用dir得到的效果是完全一样的。
下面我们来看看get-childitem在powershell中如何使用。
1、查看d盘下的子文件夹和文件列表
ps c:\users\splaybow> get-childitem d:\
目录: d:\
mode lastwritetime length name
---- ------------- ------ ----
d---- 2013/11/15 10:50 develop
d---- 2013/11/1 22:27 green
d---- 2013/11/4 17:31 program files
d---- 2013/11/17 9:30 program files (x86)
d---- 2013/10/13 10:02 soft
当然,洪哥d盘下没有直接放文件,所以只看一些目录了。
2、查看d盘下所有的txt后缀的文件
ps c:\users\splaybow> get-childitem d:\ -include *.txt -recurse
目录: d:\develop\tomcat8\webapps\docs\appdev\sample\docs
mode lastwritetime length name
---- ------------- ------ ----
----- 2013/10/16 14:50 857 readme.txt
目录: d:\develop\tomcat8\webapps\docs\appdev
mode lastwritetime length name
---- ------------- ------ ----
----- 2013/10/16 14:50 17262 build.xml.txt
----- 2013/10/16 14:50 6421 web.xml.txt
文件列表下面还有很多内容,洪哥就不一一列举了。在get-childitem这个cmdlet中,-recurse表示是否循环遍历子目录,而-include表示筛选条件。
3、查看d盘下的文件列表,不显示目录
ps c:\users\splaybow> echo "xxx">d:\1.txt
ps c:\users\splaybow> get-childitem d:\
目录: d:\
mode lastwritetime length name
---- ------------- ------ ----
d---- 2013/11/15 10:50 develop
d---- 2013/11/1 22:27 green
d---- 2013/11/4 17:31 program files
d---- 2013/11/17 9:30 program files (x86)
d---- 2013/10/13 10:02 soft
-a--- 2013/11/17 19:07 12 1.txt
ps c:\users\splaybow> get-childitem d:\ | ?{$_.psiscontainer -eq $false}
目录: d:\
mode lastwritetime length name
---- ------------- ------ ----
-a--- 2013/11/17 19:07 12 1.txt
上面的命令中,洪哥先使用echo,在d:\下创建了一个1.txt。然后使用get-childitem时,就可以看到文件列表中有1.txt这个项目,当然还有其它目录存在。最后洪哥使用了一个管道命令,将不是目录的项目从文件列表中筛选出来,于是得到1.txt的文件列表。
最后再说一下的是,get-childitem不仅可以用来显示文件系统的文件列表,还可以处理环境变量(env)、注册表(hklm)、证书(cert)、变量(variable)等树状路径。
关于powershell使用get-childitem获取目录下的文件列表,本文就介绍这么多,希望对您有所帮助,谢谢!