¿El comando copiar no acepta variables en la línea de comando?

¿El comando copiar no acepta variables en la línea de comando?

¿Cómo puedo usar una variable en un archivo por lotes para que el comando de copia proporcione la ruta a la carpeta raíz?

set destination= "c:\destination folder"
mkdir %destination%

SET source = "C:\source folder\"
SET source_full = "C:\source folder\simple file.txt"

rem this doesn't work
copy %source%\"simple file.txt" %destination%

rem this works
copy %source_full% %destination%

Respuesta1

Lo siento, se leyó mal inicialmente... No use espacios al configurar variables, entonces esto...

copy %source%\"simple file.txt" %destination%

se convierte en esto

copy %source%"simple file.txt" %destination%

Tenga en cuenta que su fuente ya tiene un "\" y agregó uno fuera de sus comillas. Entonces, llamar a ese comando copiar en realidad estaba haciendo algo extraño con la barra diagonal adicional.

Respuesta2

Aparentemente no puedes poner un espacio entre la variable y el=

C:\Users\glennjackman>set destination= "c:\destination folder"

C:\Users\glennjackman>echo %destination%
 "c:\destination folder"

C:\Users\glennjackman>SET source = "C:\source folder\"

C:\Users\glennjackman>echo %source%
%source%

C:\Users\glennjackman>SET source= "C:\source folder\"

C:\Users\glennjackman>echo %source%
 "C:\source folder\"

Y parece que las citas deberían incluir el nombre de la variable:

C:\Users\glennjackman>set "destination=c:\destination folder"

C:\Users\glennjackman>SET "source=C:\source folder"

C:\Users\glennjackman>copy "%source%\simple file.txt" "%destination%"
        1 file(s) copied.

información relacionada