Robocopy 不复制文件是否存在于目标子文件夹中

Robocopy do not copy is file exists in destination subfolders

我有一个脚本可以将文件从放置位置复制到我从 VB.net 应用程序 运行 的目标位置。

当前脚本参数:

   "C:\windows\SysWow64\robocopy.exe", TextBox1.Text & " " & TextBox2.Text & " /MT:50 /XC /XN /XO"

它的工作做得很好,但我注意到使用该应用程序的人希望将文件移动到同一目录的子目录中,以便他们可以跟踪他们所做的工作。

因为这个脚本每分钟被触发到 运行 而且我还有另一个将处理过的文件移回放置位置 我想知道是否有一种方法可以 robocopy可以在目标及其所有子目录中搜索具有相同名称的文件,这样我就可以避免重复。

谢谢,

多鲁

Robocopy Syntax, Flags and Parameters

查看上面的 MicroSoft Link。 Robocopy 有许多标志来帮助实现您正在寻找的结果。我想到的一些是:

  • /x.. 文件选择中的排除选项
  • /mir 镜像并清除 选项

另一个有一些例子的网站:Robocopy Help

我设法使用 robocopy 的排除列表如下:

  1. 我创建了一个批处理脚本,使用以下语法将文件名导出到 txt 文件中:

    cd "**location of your files**"
    
    (for /r %%a in (*.jpg) do @echo %%~nxa) > C:\temp\EXCLUDE.txt
    

有关详细信息,请参阅:

  1. 使用这个文件我创建了一个 RCJ 文件 (robocopy /job:filename.rcj)

    :: Include These Files :
    ::
    /IF     :: Include Files matching these names
    *.jpg   :: Include all names (currently - Command Line may override)
    :: Exclude These Files :
    /XF     :: eXclude Files matching these names
    
    **Names of files from the C:\temp\EXCLUDE.txt**
    ::
    /XO     :: eXclude Older files.
    /XN     :: eXclude Newer files.
    /XC     :: eXclude Changed files.
    ::
    /COPY:DAT   :: what to COPY for files (default is /COPY:DAT).
    ::
    /R:10       :: number of Retries on failed copies: default 1 million.
    /W:15       :: Wait time between retries: default is 30 seconds.
    /MT:10
    
  2. 生成此文件后,我按如下方式使用它:

     "C:\windows\SysWow64\robocopy.exe", TextBox1.Text & " " & TextBox2.Text & " /job:C:\temp\filename.rcj"
    

我已将批处理设置为每 30 秒 运行 从文件夹中获取文件名并创建 rcj 文件。然后,每 1 分钟 robocopy 作业 运行s.

非常感谢 Whosebug 的所有好心人!