1

我的脚本查找文件夹 1 中的所有文件并检查该文件是否存在于文件夹 2 中。如果它存在,那么我想从文件夹 2 中删除文件并将文件从文件夹 1 移动到文件夹 3。

$folder1 = "D:\folder1"
$folder2= "D:\folder2"
$folder3 = "D:\folder3"

$a = Get-ChildItem $folder1 | select -ExpandProperty basename 

$a | foreach {  
     Get-ChildItem -Path $folder2 -filter *$_* -Recurse 
}

现在,如果我在每个循环的末尾使用管道,我可以删除或移动,但不能同时删除。我该如何处理这种情况?

4

3 回答 3

1

既不也不move-itemremove-item管道输出任何东西。但是,两者都有一个-PassThru开关参数以允许进一步处理。

于 2013-09-24T13:09:58.593 回答
0
Get-ChildItem -File -Include(Get-ChildItem -File $folder1) $folder2\* |
foreach { remove-item $_ ; move-item (join-path $folder1 $_.BaseName) -destination $folder3}
于 2013-09-25T12:00:12.070 回答
0

这将完成这项工作:

$A | foreach { Get-ChildItem -Path $folder2 -filter $_ -Recurse} | foreach {Remove-Item $_.FullName; Copy-Item $folder1\$_.BaseName $Folder3} 
于 2013-09-24T13:24:00.703 回答