复制名称在一定范围内具有编号的文件



我不熟悉Powershell(除了它的存在和运行Powershell命令的方式)。我有一个文件夹。在该文件夹中,我有几个文件:

image_001.jpg
image_002.jpg
...
...
image_250.jpg
...
...
...
image_8000.jpg

从中我想选择特定的图像,比如从image_00001.jpg - image_00250.jpg并将它们复制到目标文件夹,比如目标

谁能告诉我Powershell的命令来做到这一点?

对于这样一个菜鸟问题,我深表歉意。我对Powershell一无所知,尽管我的直觉告诉我这可能是最容易实现的任务。

注意:我试图理解关于执行类似任务的另一个答案,但由于缺乏正则表达式知识,我无法理解它。

您可以执行以下操作:

cls
$source = "<your source>"
$destination = "<your destination>" 
foreach ($i in Get-ChildItem -Path $source -Recurse)
{
    if ($i.Name -match "image_(000dd|001dd|002[0-4]d|00250).jpg")
    {
        Copy-Item -Path $i.FullName -Destination $i.FullName.Replace($source,$destination).Trim($i.Name)
    }
}

正则表达式的解释:

000dd|001dd|002[0-4]d|0025000000-00250中的数字匹配

  • 000dd与模式000(any digit)(any digit)匹配,即直到00099
  • 001dd匹配001(any digit)(any digit)即来自00100 to 00199
  • 002[0-4]d匹配002(any digit from 0 to 4)(any digit)即从 00200 到 00249'
  • 00250匹配文字00250
  • |或运算符.. 以匹配上述任何指定模式

最新更新