文章目录
- 帮助文档
- 举例
- solution for files:
- solution for both files and directories:
- 例1:
- 例2:(附带移动过程(-Verbose))
- 中间变量
帮助文档
很多高级用法在对应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筛选的结果
然后再双参数命令上传入该变量