Команда копирования не принимает переменную в командной строке?

Команда копирования не принимает переменную в командной строке?

Как использовать переменную в пакетном файле для команды копирования, чтобы указать путь к корневой папке?

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%

решение1

Извините, неправильно понял изначально... Не используйте пробелы при задании переменных, тогда это...

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

становится этим

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

Обратите внимание, что в вашем источнике уже есть "\", и вы добавили его за пределами кавычек. Так что вызов этой команды копирования на самом деле делал что-то странное с дополнительной косой чертой.

решение2

Видимо, нельзя ставить пробел между переменной и=

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

И, похоже, кавычки должны включать имя переменной:

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.

Связанный контент