コピーコマンドはコマンドライン上の変数を受け入れませんか?

コピーコマンドはコマンドライン上の変数を受け入れませんか?

コピー コマンドのバッチ ファイルで変数を使用してルート フォルダーのパスを指定するにはどうすればよいですか?

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.

関連情報