Atualmente, estou tentando criar um arquivo em lotes, que copia uma pasta de um servidor para uma máquina cliente. E eu estou brincando com arquivo em lote, usando xcopy, e isso me dá a porcentagem de conclusão. Eu não sou um programador, eu apenas modifiquei uma pequena montagem de linhas de um código que eu obtinha de: link (todo o crédito vai para "Jake").
No entanto, o arquivo em lote realmente copiou os arquivos inteiros, incluindo as pastas pai, eu senti falta de algo aqui?
Aqui está o código:
@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
Eu tentei modificar o xcopy /z / q / s / e / y "%% a" "% enddir% \ %% ~ pa *. *" > nul para dentro xcopy /z / q / s / e / y "%% a" "% enddir%" > nul No entanto, os arquivos dentro da subpasta em C: \ ZZZSource \ Depth1 \ Depth2 \ os arquivos serão copiados da pasta. Por exemplo, sob a pasta C: \ ZZZSource \ Depth1 \ Depth2 \ os arquivos, há a pasta A B C, e dentro deles, há cada um dos 4-5 arquivos. Esses 4-5 arquivos serão todos copiados para "C: \ ZZZDestination \".
Alguém tem alguma ideia?
Obrigado antecipadamente.