【问题标题】:How to copy files based on their name in Powershell?如何在 Powershell 中根据文件名复制文件?
【发布时间】:2022-01-14 03:51:30
【问题描述】:

我正在尝试从包含特定数字的大目录中选择文件。现在我有这个..它是复制目录中的所有文件..它应该是一个简单的小脚本..但是它让我发疯了..

$files=Get-Content nametofind.txt
ForEach($file in $files){
Copy-Item "source\*.xml" -Destination "selected"  | where{$_.name -contains $($file)} 
}

我错过了什么?

文本文件的提取:

27216
27658
27716
27793
27961
27975
28599
28665
28931
29076
29077
29079
29080
29582

这种情况持续了大约。 2500行

我正在搜索的文件名是格式

L_20211103_110803_8540_77498.xml

扩展名之前的文件名的最后一段是感兴趣的段。

谢谢

【问题讨论】:

标签: powershell


【解决方案1】:

您可以通过在 Copy-Item 命令中使用通配符来保持简单:

$files=Get-Content nametofind.txt
ForEach($file in $files){
  Copy-Item "source\*$file*.xml" -Destination "selected"
}

Copy-Item 命令使用-whatif 标志来验证所发生的行为是否符合预期。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-30
    • 2020-07-14
    • 2018-05-21
    • 2017-08-04
    • 2014-07-08
    • 1970-01-01
    相关资源
    最近更新 更多