複製命令不接受命令列上的變數嗎?

複製命令不接受命令列上的變數嗎?

如何在複製命令的批次檔中使用變數來提供根資料夾的路徑?

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.

相關內容