https://gist.github.com/Penderis/950c914afe0e5b6cc4ee
@echo off
CLS
setlocal EnableDelayedExpansion
REM Altera o caminho da raiz para relativo à pasta bat atual
pushd "% ~ dp0"REM encontra arquivos no arquivo .txt fornecido e os copia para o diretório de destino
REM CHECK FOR ADMIN RIGHTS
COPY / b / y NUL% WINDIR% 06CF2EB6-94E6-4a60-91D8-AB945AE8CF38> NUL 2> & 1
IF ERRORLEVEL 1 GOTO: NONADMIN
DEL % WINDIR% 06CF2EB6-94E6-4a60-91D8-AB945AE8CF38> NUL 2> & 1: ADMIN
REM GOT ADMIN RIGHTS
COLOR 1F
ECHO Olá,% USERNAME%!
ECHO Por favor aguarde ...set / p DEST DIR = "Copiar arquivos para:"% =%
set / p SEARCH DIR = "Copiar arquivos de:"% =%
@echo .
@echo Verifique se o nome da pasta está correto.
@echo Copiar arquivos para:% DEST DIR%
@echo Copiar arquivos de:% SEARCH DIR%
set / p CORRECT FOLDERS = "Estão corretos? (verifique a ortografia) s / n:"
if '% CORRECT FOLDERS%' == 'y' GOTO: SIM RESPONDA
se '% CORRECT FOLDERS%' == 'n' GOTO: NO_ANSWER
COLOR 2F
ECHO.
PAUSE
GOTO: EOF: NONADMIN
REM NO ADMIN RIGHTS
COLOR 4F
ECHO.
ECO POR FAVOR, EXECUTE COMO ADMINISTRADOR
ECO.
pausa
GOTO: EOF: SIM RESPOSTA
@echo .
@echo você respondeu sim
@echo .
se existir% DEST DIR% GOTO: LEIA DADOS,
se não existir% DEST DIR% md% DEST DIR% & GOTO: LEIA DADOS
PAUSA: SEM RESPOSTA
@echo .
@echo você respondeu não
set / p TRY AGAIN = "Tentar novamente? y / n:"
if '% TRY AGAIN%' == 'y' GOTO: SIM RESPOSTA
se '% TRY AGAIN%' == 'n' GOTO: SAIR DA
PAUSA DO PROGRAMA: EXIT_PROGRAM
@echo .
@echo "Desculpe, porra"
PAUSE
GOTO: EOF: LEIA OS DADOS
@echo .
set / p GET FILENAMES = "Qual é o nome do arquivo de texto em que seus nomes de arquivo estão armazenados?"% =%
if exist% GET FILENAMES% .txt @echo Iremos agora ler e copiar os arquivos para você, tome um café, talvez demore um pouco & GOTO: ESCREVER DADOS
se não existir% GET FILENAMES% .txt @echo Nome do arquivo não corresponde, por favor digite apenas o nome sem extensão .txt & GOTO: READ DATA
PAUSE: ESCREVER DADOS
@echo .
@echo lendo o nome do arquivo ...
para / f "usebackq delims =" %% a in ("% GET FILENAMES% .txt") faça (
para / r "% SEARCH DIR%" %% b in ("%% a * ") do (
@echo Cópia iniciada ...
cópia" %% b ""% DEST DIR% %% ~ nxb "
)
)
@echo Cópia concluída, revise as ações. Lekker Man.
PAUSAR
</pre>