Robocopy - 带有&符号的文件名

时间:2013-07-31 03:44:13

标签: batch-file robocopy

所以我有一个非常基本的批处理脚本,它查看传入的文件夹,并根据文件类型移动我想要的文件。现在显示“&”的文件夹在他们打破它。你如何解决这个问题?我无法在网上找到明显的答案。

robocopy.exe "%location%" "%destination%" /E /tee /LOG+:C:\Users\etc\Log.txt

编辑2:

好的,感谢下面的评论和一堆线索和错误,我认为这是一个报价问题。现在经过一系列的试验和错误发现引号和没有引号的组合起作用,我不知道为什么。如果有人能够解释为什么这个有效,而其他组合没有,我会很感激哈哈...批次是如此奇怪。

Input -> Test.bat "C:\etc\etc\" - 引号中的路径

set location=%1 - 没有引号

set type="%~2" - 引号

set destination="C:\Users\xxxx\Desktop\Destination" - 引号

set logfile="C:\Users\xxxx\Desktop\robolog.txt" - 引号

robocopy.exe %location% "%destination%" /E /tee /LOG+:%logfile% - 没有引号但引号中的目标来源???

引用是否相互抵消?我很困惑为什么添加引号会使它不起作用,但只在某些情况下才起作用? 同样具有%~1对比%1对“%1”对比“%~1”产生不同的结果。

1 个答案:

答案 0 :(得分:8)

我测试了这个:

@ECHO OFF &SETLOCAL
SET "location=this & that"
SET "destination=more & more"
robocopy.exe "%location%" "%destination%" /E /tee /LOG+:"%destination%\Log.txt"

我没有错误:

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

  Started : Wed Jul 31 09:59:55 2013

   Source : C:\TEST\this & that\
     Dest : C:\TEST\more & more\

    Files : *.*

  Options : *.* /TEE /S /E /COPY:DAT /R:1000000 /W:30 

------------------------------------------------------------------------------

------------------------------------------------------------------------------

                Total    Copied   Skipped  Mismatch    FAILED    Extras
     Dirs :         1         0         1         0         0         0
    Files :        81        81         0         0         0         1
    Bytes :    28.3 k    28.3 k         0         0         0         0
    Times :   0:00:00   0:00:00                       0:00:00   0:00:00

    Speed :              184585 Bytes/sec.
    Speed :              10.562 MegaBytes/min.

    Ended : Wed Jul 31 09:59:55 2013