我有一个源文件夹(c:\ test *),我希望该文件夹复制到同一位置的所有文件夹(c:\ resultaat),但只能复制到该位置包含名称demo_profit的文件夹。
我想我差不多了,但我想错过一小部分。
chan
感谢您的帮助
答案 0 :(得分:0)
Get-ChildItem的-Directory参数需要AFAIK PSv5
Get-ChildItem -Directory -Path 'C:\resultaat\' | ForEach-Object{
if (Test-Path (Join-Path $_.FullName 'demo_profit')){
Copy-Item C:\test\* $_.FullName -recurse -force
}
答案 1 :(得分:0)
因此,不清楚是否要将文件复制到包含名为demo_profit的项目的文件夹,或者名称中包含demo_profit的文件夹。第二个很简单,所以我将从那里开始:
Get-ChildItem C:\resultaat\* -Directory |
Where{$_.Name -match 'demo_profit'} |
ForEach{ Copy-Item C:\test\* -dest $_.FullName -recurse -force }
找到c:\ resultaat中有' demo_profit'的任何文件夹。作为其名称的一部分,并将所需的文件/文件夹复制到该文件夹中。示例:C:\ resultaat \ Folder1_demo_profit将C:\ temp中的所有文件复制到其中。
如果您正在寻找名为demo_profit的内容,并希望将文件复制到与该项目相同的文件夹中,则需要使用PSParentPath属性和一些通配符。
Get-ChildItem c:\resultaat\*\*demo_profit*
此命令会找到一个文件或文件夹,其路径如' C:\ resultaat \ Amazon \ az_demo_profit'。然后将文件复制到包含您将使用PSParentPath属性的文件夹中:
Get-ChildItem c:\resultaat\*\*demo_profit* |
Select -Expand PSParentPath -Unique
ForEach{ Copy-Item C:\test\* -dest $_ -recurse -force }