我的脚本查找folder1中的所有文件,并检查folder2中是否存在此文件。如果它存在,那么我想从folder2中删除该文件,并将文件从Folder1移动到folder3。
$folder1 = "D:\folder1"
$folder2= "D:\folder2"
$folder3 = "D:\folder3"
$a = Get-ChildItem $folder1 | select -ExpandProperty basename
$a | foreach {
Get-ChildItem -Path $folder2 -filter *$_* -Recurse
}
现在,如果我在每个循环结束时使用管道,我可以删除或移动但不能同时删除。我该如何处理这种情况?
答案 0 :(得分:1)
move-item
或remove-item
都没有向管道输出任何内容。但是两者都有一个-PassThru
开关参数,以便进一步处理。
答案 1 :(得分:0)
这将完成这项工作:
$A | foreach { Get-ChildItem -Path $folder2 -filter $_ -Recurse} | foreach {Remove-Item $_.FullName; Copy-Item $folder1\$_.BaseName $Folder3}
答案 2 :(得分:0)
Get-ChildItem -File -Include(Get-ChildItem -File $folder1) $folder2\* |
foreach { remove-item $_ ; move-item (join-path $folder1 $_.BaseName) -destination $folder3}