
¿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.