【问题标题】:Get-ChildItem piped to Copy-Item with rename to same directoryGet-ChildItem 通过管道传输到 Copy-Item 并重命名为同一目录
【发布时间】:2019-10-28 20:17:06
【问题描述】:

我正在尝试将特定文件夹中某个扩展名的文件批量复制/重命名到具有前缀的同一文件夹中。我确信这是我自己缺乏 Powershell 经验的问题。我根本不知道如何设置命令。

我正在尝试将所有扩展名为 .mxd 的文件放在一个文件夹中,并将它们从 something.mxd 重命名为 _prefix_something.mxd_

我很确定第一部分没问题:Get-ChildItem *.mxd 但我不知道如何很好地使用Copy-Item。我的理解是-Destination是你要放新文件名的地方,那么我该如何输入("current-folder\prefix" + $_.Name + ".mxd")??

我确信我只是遗漏了几个关键点来让它发挥作用。我得到的只是一个“prefix_.mxd”文件。它与Get-ChildItem 列表中的最后一个文件大小相同。但是如果我把foreach 循环带回来,它会询问路径值。我错过了什么?

【问题讨论】:

    标签: powershell get-childitem copy-item


    【解决方案1】:

    像这样? rename-item 的文档有一个类似的例子。

    dir *.mxd | copy-item -destination { 'prefix_' + $_.name } -whatif
    

    【讨论】:

    • 几乎,虽然如果我在最终找到自己的答案之前看到它,你的答案会有所帮助。我需要复制和重命名文件,因此需要复制项目而不是重命名项目。
    • 只需将 rename-item -newname 更改为 copy-item -destination。
    【解决方案2】:

    愚蠢。我必须用花括号 {} 强制脚本块,而不是使用括号 (),并且我可以通过以前缀开头来跳过当前文件夹的路径。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-07
      • 1970-01-01
      • 2014-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-15
      相关资源
      最近更新 更多