我已经尝试谷歌我的问题有一段时间了,没有一个解决方案,适合我的需要。希望你能帮我。
我有一些包含数以百万计的文件的子文件夹。我想搜索这些子文件夹的文件名包含翻滚文字。
这就是我所拥有的,但它不会将任何东西复制到我的$Newlocation文件夹中。
$Include = @"
20190421
20190422
20190423
20190424
"@
$BaseFolder = "D:\FoldersContainingFiles"
$NewLocation = "D:\FolderForCopy\"
Get-ChildItem -Path $BaseFolder -Recurse -Include * |
Where-Object {$Include -contains $_.BaseName } |
Copy-Item -Destination $NewLocation没有错误代码,只有文件被移动。
发布于 2019-06-12 12:09:51
您的代码将只提供与变量中的示例完全相同的文件,即:
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)$"其余的代码是相同的。
https://stackoverflow.com/questions/56561635
复制相似问题