不使用-Recurse将文件从一个文件夹移动到另一个文件夹

时间:2019-01-27 15:55:15

标签: powershell

我有一个Powershell脚本,我要做的就是将某种类型的文件从指定的文件夹移动到目标文件夹。不幸的是,没有包含-Recurse的功能,这是行不通的,这不是我想要实现的功能。如果我包含-Recurse,它将开始从“ D:/照片/ x /”等移动图像。我要做的就是将文件从“ D:/照片”移动到目标位置

Get-ChildItem "D:\Photos" -Include *.png, *.jpeg, *.jpg |
Move-Item -Destination "D:\Photos\Powershell Task" -Force

2 个答案:

答案 0 :(得分:3)

不带-Include的{​​{1}}参数不起作用。

但是,还有另一种方法可以让-Recurse做您想做的事情(即在多个扩展名上进行过滤),那就是将-Include添加到路径中。

在您的情况下:

\*

提醒您:目标路径Get-ChildItem -Path "D:\Photos\*" -Include *.png, *.jpeg, *.jpg | Move-Item -Destination "D:\Photos\Powershell Task" -Force 必须存在。

答案 1 :(得分:3)

解决方案:

Get-ChildItem "D:\Photos\*" -Include *.png, *.jpeg, *.jpg | Move-Item -Destination "D:\Photos\Powershell Task" -Force

说明: 选择要使用的包含Get-ChildItem时,必须选择-recursion或使用-path中的通配符定义包含的内容。 这种情况 D:\ Photos \ * 的定义是获取D:\ Photos中具有名称和扩展名的所有子级,然后使用-include过滤仅带有扩展名的子级。 jpg .png