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