@echo off
setlocal enabledelayedexpansion
echo ================
echo.
if not exist “code\” (
echo Error:code file not exit!
pause
exit /b 1
)
REM 确保目标目录存在
if not exist “D:\decode\” mkdir “D:\decode\”
set BATCH_SIZE=50
set CURRENT_BATCH=0
set TOTAL_FILES=0
echo Scanning code folder…
echo.
REM 先统计code文件夹内的文件总数
for /r “code” %%f in (*) do set /a TOTAL_FILES+=1
echo Find %TOTAL_FILES% Files in code folder…
echo Start Copy…
echo.
set COUNT=0
for /r “code” %%f in (*) do (
set /a COUNT+=1
set /a CURRENT_BATCH+=1
REM 显示进度
set /a PERCENT=COUNT*100/TOTAL_FILES
echo [!PERCENT!%%] [!COUNT!/!TOTAL_FILES!] Copy: %%~nxf
REM 计算相对于code文件夹的路径
set “FULL_PATH=%%f”
REM 去掉前面的”code\”部分
set “REL_PATH=!FULL_PATH:*\code\=!”
REM 在目标目录创建相同结构
set “TARGET_PATH=D:\decode\!REL_PATH!”
set “TARGET_DIR=!TARGET_PATH:\%%~nxf=!”
if not exist “!TARGET_DIR!” mkdir “!TARGET_DIR!”
REM 执行本地复制
copy “%%f” “!TARGET_PATH!” >nul
REM 每复制50个文件显示一次
if !CURRENT_BATCH! equ !BATCH_SIZE! (
echo.
echo Copy !BATCH_SIZE! Files…
set CURRENT_BATCH=0
)
)
echo.
echo Copy Done !COUNT! Files!
@echo off
setlocal enabledelayedexpansion
echo ====== Folder Verification Only ======
echo.
if not exist “code\” (
echo Error: code folder not exist!
pause
exit /b 1
)
if not exist “D:\decode\” (
echo Error: decode folder not exist!
pause
exit /b 1
)
set TOTAL_FILES=0
set SAME_COUNT=0
set DIFF_COUNT=0
set MISSING_COUNT=0
set EXTRA_COUNT=0
echo Scanning folders…
echo.
REM 统计源文件夹文件数
for /r “code” %%f in (*) do set /a TOTAL_FILES+=1
echo Source folder has !TOTAL_FILES! files
echo Starting verification…
echo.
REM 校验每个文件
set COUNT=0
for /r “code” %%f in (*) do (
set /a COUNT+=1
set “FULL_PATH=%%f”
set “REL_PATH=!FULL_PATH:*\code\=!”
set “TARGET_PATH=D:\decode\!REL_PATH!”
set /a PERCENT=COUNT*100/TOTAL_FILES
echo [!PERCENT!%%] Checking: !REL_PATH!
if exist “!TARGET_PATH!” (
fc “%%f” “!TARGET_PATH!” >nul
if errorlevel 1 (
set /a DIFF_COUNT+=1
echo [DIFFERENT]
) else (
set /a SAME_COUNT+=1
)
) else (
set /a MISSING_COUNT+=1
echo [MISSING]
)
)
REM 检查目标文件夹中多出的文件
for /r “D:\decode” %%f in (*) do (
set “FULL_PATH=%%f”
set “REL_PATH=!FULL_PATH:D:\decode\=!”
set “SOURCE_PATH=%cd%\code\!REL_PATH!”
if not exist “!SOURCE_PATH!” (
set /a EXTRA_COUNT+=1
)
)
echo.
echo ====== Verification Result ======
echo Total files in code: !TOTAL_FILES!
echo Files match: !SAME_COUNT!
echo Files different: !DIFF_COUNT!
echo Files missing in decode: !MISSING_COUNT!
echo Extra files in decode: !EXTRA_COUNT!
echo.
if !DIFF_COUNT! equ 0 if !MISSING_COUNT! equ 0 if !EXTRA_COUNT! equ 0 (
echo RESULT: VERIFICATION PASSED
) else (
echo RESULT: VERIFICATION FAILED
)
pause
