我目前正在尝试创建一个批处理文件,它实际上将文件夹从服务器复制到客户端计算机。我正在使用 xcopy 处理批处理文件,它给了我完成的百分比。我不是程序员,我只是从以下代码中修改了一小段代码:https://answers.yahoo.com/question/index?qid=20120229012108AA8EwOA(所有荣誉归于“杰克”)。
但是,批处理文件实际上会复制整个文件,包括父文件夹,我在这里遗漏了什么吗?
以下是代码:
@echo off&color a
setlocal enabledelayedexpansion
cd /
mkdir ZZZDestination
set startdir="C:\ZZZSource\Depth1\Depth2\the files"
set enddir="C:\ZZZDestination\"
echo.
echo Please make sure you are connected to Ericsson Network-preferrably via LAN CABLE
echo This will copy the files to your machine
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 但是,C:\ZZZSource\Depth1\Depth2\the files 下的子文件夹中的文件将从文件夹中复制出来。例如,在文件夹 C:\ZZZSource\Depth1\Depth2\the files 下,有文件夹 ABC,文件夹内各有 4-5 个文件。这 4-5 个文件将全部复制到“C:\ZZZDestination\”中。
有人知道吗?
先感谢您。