How do xcopy copy a directory from a variable

Asked

Viewed 322 times

-1

I’m with a project involving bat más I need to use a command (xcopy)

Suppose: I want that I can enter the whole directory ex: C: Users "User" directory

and be able to type in the destination ex: D: Directory of Destination

  • Support issues do not fit the scope of the site](/help/on-topic). Links to better understand how Sopt works: [Tour], [Ask], Manual on how NOT to ask questions and [Help]. If you are easy with English, you can use the site [su] which is for support issues (unfortunately we did not get a Portuguese version of this).

1 answer

1

inserir a descrição da imagem aqui


To enter the directory, use the command set /p :

It opens an entrance so you can insert/digest what you want to go to the variable:


set /p _nome_variável=

rem :: Opcionalmente, pode incluir um texto para exibição junto do comando, exemplo ::

set /p "_nome_variável=Texto para exibição: " 

  • An example of using the command set /p already adapted in a suggested use with the xcopy

@echo off & setlocal enabledelayedexpansion & title <nul
mode 91,10 & color 0a & title Q420630.cmd & cd. & echo=

set /p "_dir_Origem= Digite Um Diretorio Origem: " && (
dir /d "!_dir_Origem!" | findstr /l \[\.\.\] > nul && (
set /p "_dir_Destino= Digite Um Diretorio de Destino: "

if not "!_dir_Destino!\\" == "\\" goto :^? ) ) || echo= 
echo= Revise os seus argumentos/parâmetros informados:
echo= "!_dir_Origem!"  "!_dir_Origem!" & exit /b  ...

:^?
xcopy /c /y /e /v /f /i "!_dir_Origem!" "!_dir_Destino!"

  • Commenting on the code used...
@echo off & setlocal enabledelayedexpansion & title <nul

:: redimensiona tela para x/y 91 colunas e 10 linhas ::
:: muda cor para fundo preto, texto verde e adiciona ::
:: altera titulo para janela aberta, e ecoa 2 linhas :: 
mode 91,10 & color 0a & title Q420630.cmd & cd. & echo=

:: Set /p para aguardar inserção de caminho/diretório :: 
set /p "_dir_Origem= Digite Um Diretório Origem: " && (

:: Apenas para verificar se pasta passada é existente ::
dir /d "!_dir_Origem!" | findstr /l \[\.\.\] > nul && (

:: Após verificado que existe, pede um pasta destino  ::
set /p "_dir_Destino= Digite Um Diretorio de Destino: " 

if not "!_dir_Destino!\\" == "\\" goto :^? ) ) || echo= 

:: Para agir em caso de inconsistência nos parâmetros  
echo= Revise os seus argumentos/parâmetros informados:

echo= "!_dir_Origem!"  "!_dir_Origem!" & exit /b  ...

:^?
xcopy /c /y /e /v /f /i "!_dir_Origem!" "!_dir_Destino!"

::  Seu comando para a tarefa do XCOPY, entrar aqui!  ::
::  Comando acima é só um exemplo de uso/teste aqui.  ::

echo= xcopy [seus argumentos/parâmetros] "!_dir_Origem!" "!_dir_Destino!"
  • For more help about the commands used in this response:
  • Copy and run on command line:
chcp 860 & > "%temp%\help_comandos.txt" (set /? & dir /? & xcopy /? & findstr /? * title /? & setlocal /? & mode /?) & "%temp%\help_comandos.txt"

  • This code will generate a file (help_commands.txt), already containing the help text on the commands used in the posted response.
  • Save this file for your future queries..


Browser other questions tagged

You are not signed in. Login or sign up in order to post.