我正在寻找一系列文件,这些文件遵循非常严格的文件名格式,但根据文件名中的字符串位于不同编号的子文件夹中。
-
文件名总是";LAX_CA_基线_<8位数字>。pdf
-
文件总是有4个文件夹深,前两个文件夹总是\\fileserver\sports\pdf
-
最后4位数字总是代表底部的两个子文件夹,例如LAX_CA_Baseball_1234568.pdf将位于"\\fileserver\sports\pdf\56\78";
-
总共有数千万个文件,因此仅从\\fileserver\sports\pdf中搜索文件名就需要很长时间
我可以在powershell中写一些东西来解析文件名的最后4位数字,将其转换到底部的子文件夹,然后获取文件并将其复制到新文件夹中吗?
假设您已经在某个地方有了文件名,您可以提取数字并用正则表达式构造路径:
$f = "LAX_CA_Baseball_12345678.pdf"
if ($f -match ".*_d{4,4}(dd)(dd).pdf") {
$sourcePath = "\serversportspdf$($matches[1])$($matches[2])$f"
$destinationPath = "some other folder path"
Copy-Item $sourcePath $destinationPath
} else {
Write-Error "Can't determine folder from filename $f"
}