Powershell - 将文本文件中的ID与多个文件夹中的文件名进行匹配

时间:2017-11-22 16:02:43

标签: powershell

我需要搜索350,000个文件,以查找包含文件名中某些模式的文件。但是,它需要匹配的模式列表(ID号)是1000!所以我非常希望能够编写这个脚本,因为他们最初计划手动执行...

所以要更清楚:

  1. 检查文件夹和所有子文件夹中的每个文件。
  2. 如果文件名包含文本文件中的任何ID,则将其移至另一个文件
  3. 否则,请忽略它。
  4. 所以我有一个使用单个值的基本代码:

    $name = Get-Content 'C:\test\list.txt'
    get-childitem -Recurse -path "c:\test\source\" -filter "*$name*" | 
    move-item -Destination "C:\test\Destination"
    

    如果我将$name更改为指向单个ID,则可行,如果我在txt文件中有一个ID,则可以正常工作。列表中的多个项目:

    1111111
    2222222
    3333333

    失败了。我究竟做错了什么?我怎样才能让它发挥作用?我仍然是PowerShell的新手,所以请在任何答案中更具描述性。

1 个答案:

答案 0 :(得分:-1)

尝试按照此tutorial了解如何使用get-content函数。看起来当你有一个多行文件时,你会得到一个数组。然后你必须遍历你的数组并使用你只用于一个项目的逻辑