O comando copy não aceita variável na linha de comando?

O comando copy não aceita variável na linha de comando?

Como posso usar uma variável no arquivo em lote para o comando de cópia para fornecer o caminho para a pasta raiz?

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%

Responder1

Desculpe pela leitura errada inicialmente... Não use espaços ao definir variáveis, então isso...

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

torna-se isso

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

Observe que sua fonte já possui um "\" e você adicionou um fora das aspas. Então, chamar aquele comando de cópia estava fazendo algo estranho com a barra extra.

Responder2

Aparentemente você não pode colocar um espaço entre a variável e o=

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\"

E parece que a cotação deve incluir o nome da variável:

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.

informação relacionada