Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
powershell使用管道执行多个操作_Powershell_Pipe_Operation - Fatal编程技术网

powershell使用管道执行多个操作

powershell使用管道执行多个操作,powershell,pipe,operation,Powershell,Pipe,Operation,我的脚本查找folder1中的所有文件,并检查folder2中是否存在此文件。如果它存在,那么我想从folder2中删除该文件,并将该文件从Folder1移动到folder3 $folder1 = "D:\folder1" $folder2= "D:\folder2" $folder3 = "D:\folder3" $a = Get-ChildItem $folder1 | select -ExpandProperty basename $a | foreach { Get-

我的脚本查找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 
}

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

既不
移动项目
也不
删除项目
向管道输出任何内容。但是,两者都有一个
-PassThru
开关参数以允许进一步处理。

既不
移动项目
也不
删除项目
向管道输出任何内容。但是,两者都有一个
-PassThru
开关参数以允许进一步处理。

这将完成以下工作:

$A | foreach { Get-ChildItem -Path $folder2 -filter $_ -Recurse} | foreach {Remove-Item $_.FullName; Copy-Item $folder1\$_.BaseName $Folder3} 
这将完成以下工作:

$A | foreach { Get-ChildItem -Path $folder2 -filter $_ -Recurse} | foreach {Remove-Item $_.FullName; Copy-Item $folder1\$_.BaseName $Folder3} 

您可以在脚本块中使用分号来执行多个命令,因此类似这样的操作应该可以起作用:$a | foreach{Get ChildItem-Path$folder2-filter*$\u*-Recurse}foreach{Remove Item$\ FullName;Copy Item$folder1\$\ ubasename$Folder3}谢谢。这就是我一直在寻找的答案。你能把这个作为答案吗?别担心,我已经把答案贴在下面了,如果你投赞成票,或者选择它作为正确答案,如果它解决了你的问题,我将不胜感激。感谢您可以在脚本块中使用分号来执行多个命令,因此类似的方法应该可以工作:$a | foreach{Get ChildItem-Path$folder2-filter*$\u*-Recurse}foreach{Remove Item$\ FullName;Copy Item$folder1\$\ BaseName$Folder3}谢谢。这就是我一直在寻找的答案。你能把这个作为答案吗?别担心,我已经把答案贴在下面了,如果你投赞成票,或者选择它作为正确答案,如果它解决了你的问题,我将不胜感激。谢谢