복사 명령이 명령줄에서 변수를 허용하지 않습니까?

복사 명령이 명령줄에서 변수를 허용하지 않습니까?

복사 명령을 위해 배치 파일의 변수를 사용하여 루트 폴더의 경로를 제공하려면 어떻게 해야 합니까?

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.

관련 정보