0
点赞
收藏
分享

微信扫一扫

powershell_利用ls与管道符进行稍为复杂的移动复制操作/批量移动文件夹


文章目录

  • ​​帮助文档​​
  • ​​举例​​
  • ​​solution for files:​​
  • ​​solution for both files and directories:​​
  • ​​例1:​​
  • ​​例2:(附带移动过程(-Verbose))​​

  • ​​中间变量​​

帮助文档

很多高级用法在对应cmdlet 帮助中的example部分都有介绍到
​​​help mv​​​​help cp​​ …
powershell_利用ls与管道符进行稍为复杂的移动复制操作/批量移动文件夹_帮助文档

  • 这里利用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:

powershell_利用ls与管道符进行稍为复杂的移动复制操作/批量移动文件夹_帮助文档_02

ls *pdf* | foreach {if($_.Name -ne "pdfTools") {mv $_ ./pafTools}}

例2:(附带移动过程(-Verbose))

powershell_利用ls与管道符进行稍为复杂的移动复制操作/批量移动文件夹_pwsh_03

powershell_利用ls与管道符进行稍为复杂的移动复制操作/批量移动文件夹_帮助文档_04

中间变量

于此同时,您可以选择用一个临时变量来保存ls筛选的结果
然后再双参数命令上传入该变量


举报

相关推荐

Node 文件夹复制操作

node操作文件夹复制与删除

0 条评论