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

时间:2015-02-11 08:11:41

标签: vb.net batch-file robocopy

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

带参数的当前脚本:

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

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

由于此脚本被触发每分钟运行,我还有另一个脚本将处理过的文件移回放置位置我想知道robocopy是否可以搜索目标及其所有子目录对于具有相同名称的文件,我避免重复。

谢谢,

Doru

2 个答案:

答案 0 :(得分:1)

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

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

    cd "**location of your files**"
    
    (for /r %%a in (*.jpg) do @echo %%~nxa) > C:\temp\EXCLUDE.txt
    
  2. 有关详细信息,请参阅:List files from folder includins subfolders batch

    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"
      
    3. 我已将批处理设置为每30秒运行一次,以从文件夹中获取文件名并创建rcj文件。然后,每1分钟,机器人工作就会运行。

      非常感谢stackoverflow的所有好人!

答案 1 :(得分:0)

Robocopy Syntax, Flags and Parameters

查看以上MicroSoft Link。 Robocopy有许多标志可帮助您实现所需的结果。一些想到的是:

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

另一个包含一些示例的网站:Robocopy Help