powershell_利用ls与管道符进行稍为复杂的移动复制操作/批量移动文件夹
帮助文档
很多高级用法在对应cmdlet 帮助中的example部分都有介绍到
help mv
help cp
…
- 这里利用ls(即
get-chiledItem
)来进行对象筛选,再通过管道符传送给mv(即move-item
) - 一般的,mv需要两个参数,所以这里使用
-Destination
来指明其后面跟的是目标目录(而管道符传送过来的结果则作为被移动对象)
举例
eg.将当前有关pdf文件
都移动到pdfTools目录
下(pdfTools目录和其他需要被移动的目录位于同一个目录下)
solution for files:
ls *pdf* -Exclude pdfTools | mv -Destination .\pdfTools\
exclude pdfTools
选项可以从被移动对象中剔除,否则会发生自己移动到自己的错误操作。-Depth 0
即使指定递归深度为0,在移动的时候还是会破坏目录结构(除非被移动目录的匹配模式不会覆盖到目标目录)
solution for both files and directories:
- 借助
foreach
您可以做更加灵活的控制,但语句相对较长 - 您可以编写像以下流程的语句来移动目录而不会发生结构破坏
- 如果撤销掉
-Directory
选项,那么对文件和目录将同时起作用
例1:
ls *pdf* | foreach {if($_.Name -ne "pdfTools") {mv $_ ./pafTools}}
例2:(附带移动过程(-Verbose))
中间变量
于此同时,您可以选择用一个临时变量来保存ls筛选的结果
然后再双参数命令上传入该变量
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2022-08-26 math_高数公式每日一过_part2(private)