[cmd]拷贝文件

@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

发表评论

邮箱地址不会被公开。 必填项已用*标注