我可以用Powershell解析文件名中的字符串以帮助在其子文件夹中查找该文件吗



我正在寻找一系列文件,这些文件遵循非常严格的文件名格式,但根据文件名中的字符串位于不同编号的子文件夹中。

  1. 文件名总是";LAX_CA_基线_<8位数字>。pdf

  2. 文件总是有4个文件夹深,前两个文件夹总是\\fileserver\sports\pdf

  3. 最后4位数字总是代表底部的两个子文件夹,例如LAX_CA_Baseball_1234568.pdf将位于"\\fileserver\sports\pdf\56\78";

  4. 总共有数千万个文件,因此仅从\\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"
}

最新更新