如何使用 PowerShell 复制一系列文件,其中文件名是数字序列

How can I use PowerShell to copy a range of files where the file name is as sequence of numbers

如何使用 PowerShell 复制文件名为数字序列的一系列文件?

例如,假设我有一堆文件,名称是从 23540987577 到 27495847547388 开始的数字。但是我只想复制中间 5 个数字在 43565 到 43769 之间的文件。我做了几次尝试,但它要么复制所有内容,要么出错。

到目前为止我有以下内容:

    $START = read-host -prompt "Enter starting number"
$END = read-host -Prompt "Enter ending number"


$Files = Get-ChildItem
$Files = $Files.name
$i = 1
foreach ($i in $Files) {
if ($Files[$i] -ge "*$START*" -and $Files[$i] -le "*$END*") {
/
Copy-Item $Files[$i] .\pulled
$i++
}
else {
Write-Host "no"

}
}

我有一个文件列表,其中的文件名是一大串数字。在所述序列中(一些靠近中间的地方)是一个交易号。我需要查找并复制特定范围内的一小部分交易编号。

如果我在 Windows Explorer 中手动搜索所述文件,我将搜索范围内的每个数字,如下所示:

*43565*
*43566*
*43567*
*43568*

等等...

我想自动执行此过程,因为搜索每个批量较大的交易编号需要很长时间。

以下情况如何:

它不是正则表达式,但我看不出在这里使用正则表达式有任何优势:

我还没有使用太多 Powershell,因此我坚持使用伪代码,但您应该能够轻松地将其适应 Powershell 脚本:

CopyFiles(int lowerBound, int upperBound)
{
    foreach (file in fileList)
    {
         int filename = (int)file.filename.substring(1,X) // you have to know the length of your substring, maybe pass it also as parameter
         if(filename >= lowerBound && filename <= upperBound)
         {
             move (file.filename, new location)
         }
    }
}