• 締切済み

コマンドラインからのコピー

お世話になっております。 【やりたいこと】 特定のファイルを任意のディレクトリにコピーするbatファイルを作成し、各PCに配布する。 【質問】 コピー先のディレクトリパスが各PCで固定であればできるのですが、 例えば、コピー先のディレクトリパスが各PCによって "C:\LOCAL\TEST\TEST2" や "C:\LOCAL\TEMP\TEST2" という風に途中のディレクトリ名が異なる場合にどのように記述すればいいのか分かりません。ちなみに最後のディレクトリ名はどのPCでも統一されています(この場合だと"TEST2"というディレクトリ名は固定) お手数ですが、ご教授頂けますと幸いです。

みんなの回答

  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.2

コピー元のファイル(sample1.dat, sample2.dat)とバッチファイル(kopi.bat)を同じディレクトリに置いておくとして、 ---"kopi.bat"の内容--- copy sample1.dat %1\TEST2 copy sample2.dat %1\TEST2 --- としておき、 C:\>kopi.bat C:\LOCAL C:\>kopi.bat C:\LOCAL\TEMP など、バッチファイルの引数(バッチファイル中では%1)としてコピー先ディレクトリを指定すると良いのではないでしょうか?

  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.1

各PCで固有のディレクトリを何処かに記憶していないと無理じゃないでしょうか? 例えば、AUTOEXEC.BAT に SET LOCAL_DIR=C:\LOCAL\TEMP\ と書いてあるとか。 そういう設定が各PCで行われているなら bat ファイルで COPY /B コピー元ファイル %LOCAL_DIR%TEST2 と書く事が出来ますが。 COPY /B コピー元ファイル %LOCAL_DIR%TEST2 の部分は SET LOCAL_DIR=C:\LOCAL\TEMP\ と設定されていれば COPY /B コピー元ファイル C:\LOCAL\TEMP\TEST2 に置き換わりますし、 SET LOCAL_DIR=C:\LOCAL\TEST\ と設定されていれば COPY /B コピー元ファイル C:\LOCAL\TEST\TEST2 に置き換わります。 なお、設定が行われていないPCで実行すると COPY /B コピー元ファイル TEST2 になってしまい、変な動作をしてしまうので注意が必要です(複数のファイルをカレントディレクトリのTEST2と言う1つのファイルに結合コピーしてしまったり)

関連するQ&A