复制完成百分比

时间:2014-04-23 04:36:44

标签: windows batch-file windows-7 xcopy

我目前正在尝试创建批处理文件,该文件实际上将文件夹从服务器复制到客户端计算机。我正在玩批处理文件,使用xcopy,它给了我完成的百分比。我不是程序员,我只是从我得到的代码中修改了一小部分行:https://answers.yahoo.com/question/index?qid=20120229012108AA8EwOA(所有功劳都归于" Jake")。

然而,批处理文件实际上会复制整个文件,包括父文件夹,我在这里错过了什么?

以下是代码:

@echo off&color a
setlocal enabledelayedexpansion

cd /
mkdir ZZZDestination
set startdir="C:\ZZZSource\Depth1\Depth2\the files"
set enddir="C:\ZZZDestination\"

echo.
echo Press any key to continue
PAUSE>nul

for /f "tokens=1,2,3,4,5" %%a in ('dir /s %startdir%^|findstr bytes') do if /i not "%%e"=="free" set qtyfiles=%%a
set filecount=0
for /f "tokens=*" %%a in ('dir /a-d-h-s /s /b %startdir%') do (
xcopy /z /q /s /e /y "%%a" "%enddir%\%%~pa\*.*" >nul
set /a filecount=!filecount!+1
set /a percentage=!filecount!*100 / !qtyfiles!
cls
echo.
echo Copying files, PLEASE DO NOT CLOSE THIS WINDOW
echo ======================================================
echo Please wait for copying:       !percentage!%% Completed
echo ======================================================
)
echo.
echo DONE, please press any key to exit..
PAUSE>nul

我试图修改

xcopy /z /q /s /e /y "%%a" "%enddir%\%%~pa\*.*" >nul

xcopy /z /q /s /e /y "%%a" "%enddir%" >nul 

它有效,并且不会复制父文件夹(例如ZZZSource \ Depth1 \ Depth2)。 但是," C:\ ZZZSource \ Depth1 \ Depth2 \下的子文件夹内的文件"将从文件夹中复制出来。

例如,在文件夹" C:\ ZZZSource \ Depth1 \ Depth2 \ files"下,有文件夹A B C,其中有4-5个文件。那些4-5个文件将全部复制到" C:\ ZZZDestination \"而不是" C:\ ZZZDestination \ A \"例如。

有人有任何想法吗?

提前谢谢。

0 个答案:

没有答案