【问题标题】:Command for moving versioned files用于移动版本化文件的命令
【发布时间】:2018-09-14 12:09:46
【问题描述】:

需要移动文件名以某些字符开头的版本控制文件 例如:我必须将文件名以“CQ”开头的文件移动到某个文件夹 但源文件夹包含版本文件,如

cq72761.xxx.2
cq72762.xxx.3
cq73237hhh1.xyz.1
cq73237hhh1.xxx.5
cq73237hhh2.xyz.1
cq73237hhh2.xxx.5
cq73238hhhh.xyz.1
cq73238hhhh.xxx.5

我收到如下错误

任何帮助将不胜感激。

【问题讨论】:

  • 欢迎来到 SO。你能更详细地描述你的问题吗?例如。通过添加描述您的问题的代码、命令或屏幕截图。另请查看帮助中心,尤其是askingminimal examples。谢谢。
  • @MarcoKinski 感谢您的回复。我的情况类似。就我而言,文件名的长度不是恒定的。
  • @CKE
    我正在尝试使用多个通配符的命令
    move CQ*.xxx.* Y:\Final_Components\CF_CQ
  • 您要移动所有CQ 文件吗?还是只有某些?

标签: batch-file cmd move


【解决方案1】:

使用 robocopy 我已经达到了所需的结果
不记录:robocopy <Source> <Target> CQ*xxx* /mov
带日志记录:robocopy <Source> <Target> CQ*xxx* /LOG+:<logfile> /mov

【讨论】:

    【解决方案2】:

    如果您只想移动所有 CQ 文件:

    move /Y cq* "Y:\Final_Components\CF_CQ"
    

    如果您想移动某些文件,例如带有xxx. 扩展名的文件:

    for %i in (CQ*.xxx.*) do move /Y %i "Y:\Final_Components\CF_CQ"
    

    或者没有for 循环:

    move /Y CQ*xxx* "Y:\Final_Components\CF_CQ"
    

    如果您希望在批处理文件中使用 for 循环

    @echo off
    for %%i in (CQ*.xxx.*) do move /Y "%%i" "Y:\Final_Components\CF_CQ"
    

    【讨论】:

    • 感谢您的回复。
    • 我的要求是移动 CREO 软件的版本文件。由于源文件夹也包含非 CREO 文件,我需要限制为特定的文件扩展名(如 cq*.prt.1、cq*.prt.2 等);
      我已经使用了你给出的命令建议,但它会导致两种类型的错误。 1. 语法错误和 2. 发现重复。
      请建议如何进一步处理。
    • @VvNair 语法错误 ia,因为您可能在 cmd 控制台中使用了用于批处理文件的命令。如果它在 cmd 中,请使用单个 % 即 %i 如果在批处理文件中将它们加倍。即%%i
    • 以下命令有效。>> move /Y CQxxx Y:\Final_Components\CF_CQ
    猜你喜欢
    • 2013-12-09
    • 1970-01-01
    • 1970-01-01
    • 2016-07-24
    • 1970-01-01
    • 1970-01-01
    • 2015-06-03
    • 1970-01-01
    • 2012-03-16
    相关资源
    最近更新 更多