【发布时间】:2018-06-07 20:21:42
【问题描述】:
在 Windows 7 pro 上尝试使用以下批处理脚本复制单个文件时,我遇到了一个额外的反斜杠:
@echo off
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"
set "DATESTAMP=%YYYY%%MM%%DD%" & set "TIMESTAMP=%HH%%Min%%Sec%"
set "FULLSTAMP=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%"
set BACKUP_FILE=Backup_%FULLSTAMP%
set LOCAL_BACKUP_PATH=c:\Backup\%DATESTAMP%
set REMOTE_BACKUP_PATH=X:\Backup\%DATESTAMP%
set FULL_LOCAL_BACKUP_FILE=%LOCAL_BACKUP_PATH%\%BACKUP_FILE%.zip
set FULL_REMOTE_BACKUP_FILE=%REMOTE_BACKUP_PATH%\%BACKUP_FILE%.zip
if NOT EXIST "C:\Backup\%DATESTAMP%" ( md C:\Backup\%DATESTAMP% )
"C:\Program Files\7-Zip\7z" a -tzip "%LOCAL_BACKUP_PATH%\%BACKUP_FILE%.zip" "C:\Backup\Images.db" "C:\Backup\Images.log" >> C:\Backup\blog.txt
if NOT EXIST "%REMOTE_BACKUP_PATH%" ( md "%REMOTE_BACKUP_PATH%" )
robocopy %FULL_LOCAL_BACKUP_FILE% %FULL_REMOTE_BACKUP_FILE% /S /E /COPY:DATS /PURGE /MIR /w:1 >> C:\Backup\blog.txt
不幸的是,robocopy.exe 不断附加一个额外的反斜杠“\”,导致它自己无法找到源文件或目标文件,如下所示:
-------------------------------------------------------------------------------
ROBOCOPY :: Robust File Copy for Windows
-------------------------------------------------------------------------------
Started : Wed Dec 27 17:36:49 2017
Source : c:\Backup\20171227\Backup_2017-12-27_17-36-49.zip\
Dest : X:\Backup\20171227\Backup_2017-12-27_17-36-49.zip\
Files : *.*
Options : *.* /S /E /COPY:DATS /PURGE /MIR /R:1000000 /W:1
------------------------------------------------------------------------------
2017/12/27 17:36:49 ERROR 2 (0x00000002) Accessing Source Directory c:\Backup\20171227\Backup_2017-12-27_17-36-49.zip'`\
The system cannot find the file specified.
Robocopy 似乎尝试复制源目录和目标目录,而不是文件。
简而言之,如何删除出现在源和目标中的额外反斜杠?另外,如何让 robocopy 只复制文件?
我查了很多类似的搜索结果却没有找到答案。
提前致谢,
乔治
【问题讨论】:
-
我想知道为什么你同时拥有
/s和/e。它们是冲突的。
标签: batch-file windows-7 robocopy