【问题标题】:switch xcopy to robocopy将 xcopy 切换到 robocopy
【发布时间】:2016-06-01 22:38:02
【问题描述】:

我正在使用以下脚本。当我用“robocopy /mov /mt”替换“move”时,它不起作用。目标太深一层,并将文件名作为目标文件夹。错误也在下面。

如何改用 robocopy?我需要多线程。

错误= 错误 123 (0x0000007B) 访问源目录 D:\source\FILE.tif\ 文件名、目录名或卷标语法不正确。

@echo off

SETLOCAL ENABLEDELAYEDEXPANSION

SET Source=D:\source
SET Destination=D:\dest

Echo Gather Top 30 files
set SrcCount=0
set SrcMax=31
FOR /F "TOKENS=*" %%a IN ('dir /A-D /O-D /B "%Source%"\*.*') DO (
    SET /A SrcCount += 1
    if !SrcCount! LEQ %SrcMax% (
MOVE "%source%\%%a" "%destination%
  )
)

这就是我正在尝试的:

@echo off

SETLOCAL ENABLEDELAYEDEXPANSION

SET Source=D:\source
SET Destination=D:\dest

Echo Gather Top 30 files
set SrcCount=0
set SrcMax=31
FOR /F "TOKENS=*" %%a IN ('dir /A-D /O-D /B "%Source%"\*.*') DO (
    SET /A SrcCount += 1
    if !SrcCount! LEQ %SrcMax% (
robocopy /mov /mt "%source%\%%a" "%destination%
  )
)

【问题讨论】:

  • 打开一个控制台窗口,输入robocopy /?并阅读帮助;您会发现关于源和目标的语法不同,两者都被视为目录;你不应该猜测语法...

标签: batch-file robocopy


【解决方案1】:

查看robocopy的参数:

robocopy /?

-------------------------------------------------------------------------------
   ROBOCOPY     ::     Robust File Copy for Windows
-------------------------------------------------------------------------------

  Started : Wed Jun 01 18:46:40 2016

              Usage :: ROBOCOPY source destination [file [file]...] [options]

             source :: Source Directory (drive:\path or \\server\share\path).
        destination :: Destination Dir  (drive:\path or \\server\share\path).
               file :: File(s) to copy  (names/wildcards: default is "*.*").

第一个参数是源目录,而不是文件。您正在传递一个文件名。

所以,改为这样做:

robocopy /mov /mt "%source%" "%destination%" "%%a"

至于/MT 选项,我认为线程用于复制不同文件,而不是相同文件的不同部分.

由于您一次只使用一个文件调用它,我不相信您实际上会得到任何多线程复制。

您需要将所有 30 个文件名收集到一个字符串中,因此替换后的结果将是一次执行 robocopy,如下所示:

robocopy /mov /mt "sourceDir" "destDir" "file1" "file2" "file3" ... "file30"

【讨论】:

  • 优秀的先生,谢谢。你对第一个论点的回答是正确的。修复了那个问题。我是一个脚本新手......至于 /MT 选项的第二个答案。我将不得不研究如何做到这一点。这对我的脚本至关重要,因为我需要它通过网络进行多线程处理。同步会太慢。
猜你喜欢
  • 2012-02-13
  • 2014-07-30
  • 2014-07-14
  • 2021-03-03
  • 2017-01-28
  • 2015-02-04
  • 1970-01-01
  • 2019-12-01
  • 2016-11-12
相关资源
最近更新 更多