我目前正在尝试创建批处理文件,该文件实际上将文件夹从服务器复制到客户端计算机。我正在玩批处理文件,使用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 \"例如。
有人有任何想法吗?
提前谢谢。