Powershell 使用mildmatch搜索复制位于多个子文件夹中的文件

Powershell 使用mildmatch搜索复制位于多个子文件夹中的文件,powershell,where-clause,get-childitem,copy-item,Powershell,Where Clause,Get Childitem,Copy Item,我已经试着用谷歌搜索我的问题有一段时间了,没有一个适合我需要的解决方案。希望你能帮助我 我有一些包含数百万个文件的子文件夹。我想在这些子文件夹中搜索包含随机文本的文件名 这是我拥有的,但它不会将任何内容复制到我的$Newlocation文件夹中 $Include=@” 20190421 20190422 20190423 20190424 "@ $BaseFolder=“D:\folders包含文件” $NewLocation=“D:\FolderForCopy\” Get ChildItem-

我已经试着用谷歌搜索我的问题有一段时间了,没有一个适合我需要的解决方案。希望你能帮助我

我有一些包含数百万个文件的子文件夹。我想在这些子文件夹中搜索包含随机文本的文件名

这是我拥有的,但它不会将任何内容复制到我的
$Newlocation
文件夹中

$Include=@”
20190421
20190422
20190423
20190424
"@
$BaseFolder=“D:\folders包含文件”
$NewLocation=“D:\FolderForCopy\”
Get ChildItem-Path$BaseFolder-Recurse-Include*|
其中,对象{$Include-包含$\ BaseName}|
复制项目-目标$NewLocation

没有错误代码,只有文件没有被移动。

您的代码将只提供与变量中的示例名称完全相同的文件,即:

20190421
20190422
20190423
20190424
这在任何情况下都不是有效的文件名

我不知道你说的牛奶比赛是什么意思。如果您的意思是,您的文件名包含日期等内容,这将解决您的任务:

$Include = "20190421|20190422|20190423|20190424"
$BaseFolder  = "D:\FoldersContainingFiles"
$NewLocation = "D:\FolderForCopy\"

Get-ChildItem -Path $BaseFolder -recurse  | 
    Where-Object {$_.BaseName -match $Include }|
    Copy-Item -Destination $NewLocation
如果文件名与变量中包含的文件名完全相同,则可以使用此正则表达式:

$Include = "^(20190421|20190422|20190423|20190424)$"

代码的其余部分是相同的。

您的代码将只提供与变量中的示例名称完全相同的文件,即:

20190421
20190422
20190423
20190424
这在任何情况下都不是有效的文件名

我不知道你说的牛奶比赛是什么意思。如果您的意思是,您的文件名包含日期等内容,这将解决您的任务:

$Include = "20190421|20190422|20190423|20190424"
$BaseFolder  = "D:\FoldersContainingFiles"
$NewLocation = "D:\FolderForCopy\"

Get-ChildItem -Path $BaseFolder -recurse  | 
    Where-Object {$_.BaseName -match $Include }|
    Copy-Item -Destination $NewLocation
如果文件名与变量中包含的文件名完全相同,则可以使用此正则表达式:

$Include = "^(20190421|20190422|20190423|20190424)$"

代码的其余部分是相同的。

您是否尝试过将其分解为单独的步骤并分别调试它们?我的意思是,你是说?然后自己复制工作?是的,看起来他们可以工作。不需要
-Include*
位。您应该删除它,因为它不做任何事情-这是有效的默认设置。[grin]/////code>-Include$Include在您的
Get ChildItem
调用中,为什么不使用
-Include
呢?您是否尝试过将其分解为单独的步骤并分别调试它们?我的意思是,你是说?然后自己复制工作?是的,看起来他们可以工作。不需要
-Include*
位。您应该删除它,因为它不做任何事情-这是有效的默认设置。[grin]///code>-Include$Include在您的
Get ChildItem
调用中,为什么不使用
-Include