【问题标题】:Powershell copy files with specific name具有特定名称的 Powershell 复制文件
【发布时间】:2016-02-16 13:45:08
【问题描述】:

我试图将文件从一个文件夹复制到另一个文件夹中,文件名末尾有 HIGH 字样,但没有得到它。有什么建议吗?

$dest = "C:\transform"
$source = "D:\result"
get-childitem $source - filter ".jpg" -recurse | Where-Object {$_.DirectoryName -match "HIGH" | ForEach-Object { Copy-Item $.fullname $dest}

【问题讨论】:

    标签: powershell file-copying


    【解决方案1】:

    $_.DirectoryName 保存文件夹名,$_.Name 保存文件名:

    $dest = "C:\transform"
    $source = "D:\result"
    Get-ChildItem $source -Filter ".jpg" -Recurse |
        ? { $_.BaseName -match "HIGH$" } |
        % { Copy-Item $_.FullName $dest}
    

    或者,正如@Walter Mitty 所指出的,更简单的:

    Copy-Item -Path $source -Filter "*HIGH.jpg" -Destination $dest –Recurse
    

    (在这种情况下,-Filter-Include 的行为似乎相同)

    【讨论】:

    • 应该使用HIGH$,因为 OP 在文件末尾说。 cmatch 也可能是执行案例的好主意....但这很可能是过火了。如果 -Filter 真的只是文件,它也可能只是 "*HIGH.jpg"。也许操作需要澄清这个问题....
    • $_.Name -match "HIGH$" 由于文件扩展名而无法工作,但$_.BaseName -match "HIGH$" 会:-)。谢谢,已更正。它更适合。
    【解决方案2】:

    将文件从一个文件夹复制到另一个文件夹的最简单方法是 Copy-Item cmdlet。 看看 -Path -Include -Destination 和 -Recurse 参数。

    https://technet.microsoft.com/library/60a19812-67ab-4b58-a6f5-34640edafbb0(v=wps.630).aspx

    【讨论】:

      猜你喜欢
      • 2022-11-10
      • 1970-01-01
      • 1970-01-01
      • 2015-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多