PowerShell 获取某目录下所有的文件、文件夹,以及过滤某文件、文件夹
2021/9/30 7:11:04
本文主要是介绍PowerShell 获取某目录下所有的文件、文件夹,以及过滤某文件、文件夹,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录
背景
问题
解决方法
代码大致流程
食用办法
结果
背景
上实验课收集实验报告,同学是通过红蜘蛛上传,教师电脑上会给每一个文件创建一个文件夹,防止同名文件,文件夹名字还是随机的,那么如何把所有实验报告,提取到一个文件夹中呢?
忙了一下午,因为一点shell编程的知识都没有。。。。百度全是垃圾,一点一点拼凑出如下代码。
问题
- 不知道怎么得到所有文件,文件夹
- 不知道怎么过滤文件,文件夹
- 不知道怎么得到当前路径
- 不知道这个脚本文件的后缀名是什么
- 不知道怎么运行脚本文件
- 一开始手写的绝对路径,路径中包含汉字,powershell默认是gbk,我保存的是utf-8,一直报错
解决方法
百度+编程经验,主要查一些函数用法,以及参数
代码大致流程
- 创建一个newfolder文件夹用来存储所有实验报告(文件)
- 获得当前文件夹的路径
- 将当前文件夹中的所有文件,不包括文件夹,获取
- 将所有文件复制到newfolder
md newfolder # store the files folder $x = Split-Path -Parent $MyInvocation.MyCommand.Definition # get the path $fileList = Get-ChildItem $x -recurse * | where{!$_.PSIsContainer} # get the files exclude folders foreach($file in $filelist){ # enum the files list if(($file.name -ne 'move.ps1')){ # 'move.ps1' is this program, it don't need copy or move echo $file.name #print the file name copy $file.fullname newfolder # copy files to the folder named newfolder } } pause
食用办法
- 在某目录下(你需要的那个目录)新建一个文件命名“move.ps1",
- 双击打开将上述代码复制到move.ps1中,保存,
- 然后右键move.ps1->PowerShell运行,
- 正常的话,所有文件都会复制到newfolder文件夹中。
结果
把这个程序给了两位助教同学,得到了好评。自己也积累了一些shell编程知识。
这篇关于PowerShell 获取某目录下所有的文件、文件夹,以及过滤某文件、文件夹的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-09-14SharePoint 2019 用 PowerShell将启用发布功能站点网站集另存为模板
- 2022-08-30PowerShell教程 - 程序性能和BUG分析工具
- 2022-08-30PowerShell教程 - 模块管理(Modules Management)
- 2022-08-29PowerShell教程 - Web requests(Web请求)
- 2022-08-26PowerShell教程 - 日期时间管理(Date & Time Management)
- 2022-08-25PowerShell教程 - 磁盘与硬件管理(Disk & Hardware Management)
- 2022-08-25PowerShell教程 - 系统事件管理(System Event Management)
- 2022-08-25PowerShell教程 - 文件系统管理(File System Management)
- 2022-08-24PowerShell教程 - 网络管理(Network Management)
- 2022-08-24PowerShell