本帖最后由 yu2n 于 2013-4-18 19:42 编辑
文件夹同步操作:
call :del_difference 操作出现错误:
简体系统下,简体中文路径正常操作。
繁体系统下,简体中文路径无法操作,提示找不到路径。
call :xcopy_sh 操作则没有问题
完整代码如下:- cls & @echo off & color 1f
- title Lol Sync [2013-04-16]
- :: sync folder
- if /i "L@ALICIA-PC" equ "%username%@%computername%" (
- call :xcopy_sh "\\yu2n-pc\d\game\LOLBox2" "D:\Game\LOLBox2"
- call :xcopy_sh "\\yu2n-pc\d\game\英雄联盟" "D:\Game\英雄联盟"
- )
- call :done
- goto :eof
- :: done tips
- :done
- echo.
- echo.
- echo ^> Sync is done!
- echo.
- color 2a
- pause
- goto :eof
- :: xcopy sh
- :xcopy_sh
- set "path_src=%~1"
- set "path_des=%~2"
- dir /ad /b "%path_src%" >nul 2>nul || goto :eof
- dir /ad /b "%path_des%" >nul 2>nul || goto :eof
- echo + %path_src%
- echo -^> %path_des%
- xcopy "%path_src%" "%path_des%" /D /E /V /C /I /H /R /Y
- cls
- echo delete difference folder ^& file
- call :del_difference "%path_src%" "%path_des%"
- echo.
- goto :eof
-
-
- :: delete difference folder & file
- :del_difference
- set "path_src=%~1"
- set "path_des=%~2"
- dir /ad /b "%path_src%" >nul 2>nul || goto :eof
- dir /ad /b "%path_des%" >nul 2>nul || goto :eof
- setlocal enableDelayedExpansion
- for /f "delims=" %%i in ('dir /ad /b /s "%path_des%"') do (
- set "path_sub=%%~i"
- set "path_cut=!path_sub:%path_des%=!"
- set "path_tmp=%path_src%!path_cut!"
- if not exist "!path_tmp!" (
- echo,%%i
- echo,!path_tmp!
- rd /q /s "%%~i"
- )
- )
- for /f "delims=" %%i in ('dir /a-d /b /s "%path_des%"') do (
- set "path_sub=%%~i"
- set "path_cut=!path_sub:%path_des%=!"
- set "path_tmp=%path_src%!path_cut!"
- if not exist "!path_tmp!" (
- echo,%%i
- echo,!path_tmp!
- del /q /s /f "%%~i"
- )
- )
- endlocal
- goto :eof
复制代码 |