プロが教えるわが家の防犯対策術!

xcopyコマンドをバッチファイルで実行するのですが、
固定パスの場合は、
xcopy c:\aaa\bbb.txt c:\ccc
(c:\aaaフォルダ内のbbb.txtをc:\ccc)
と書けばよいと思うのですが、
コピー元が固定のパスではない場合はどうやって書けば良いのでしょうか?

やりたいことは、
dddと言うフォルダの中にバッチファイルとeeeフォルダが
あり、eeeフォルダの中にコピーしたいもの(fff.txt)が入っています。コピー先は固定でc:\gggの場合
dddと言うフォルダは何処にあっても可能な場合です。

win2000とwin98で書き方が違う場合は両方お願い致します。

よろしくお願いいたします。

A 回答 (2件)

~\ddd\cp.bat


~\ddd\eee\fff.txt
という場合に、c:\ggg にコピーするということですね。

cp.bat に下記のように記述すればOKです。
xcopy eee\fff.txt c:\ggg

フォルダを、ドライブ:\フォルダ1\フォルダ2~ の様に指定する方法を
「絶対パス指定」といい、上記の様に、現在のフォルダ位置からに位置を指定
する方法を「相対パス指定」といいます。
尚、~\ddd\eee\ から見てその親である ~\ddd\ は ..\ で表わされます

また、ファイルをコピーするだけであれば、xcopy でなくても copy コマンドで
十分です。違いはこちらを参考にして下さい。
http://www1.plala.or.jp/tsune/2msdos.html#MSDOS_ …

参考URL:http://www1.plala.or.jp/tsune/2msdos.html#MSDOS_ …
    • good
    • 0
この回答へのお礼

ご解答ありがとうございました。
URL、とても活用できそうです。
参考にさせて頂きます

お礼日時:2003/10/16 12:07

こんばんは。



先ず、カレントディレクトリがバッチファイルと同じパスに
移動しているなら、単に相対パスで「ココ」という意味を付け
加えれば良いです。

  xcopy .\eee\fff.txt c:\ggg\

(「.¥」が相対表記での現在位置を意味します)

この場合、
・コマンドプロンプト上で ~\ddd\ まで移動してから起動する
・ショートカットの作業フォルダをバッチファイルと同じにする
等が必要ですが、Win9x/NT系の区別無く実行できると思います。


次は置き換え可能パラメータを使う方法、
バッチファイル自身の呼出名を %0 から取得できますが、これを
拡張した物が有ります。例えば

  %~F0 :自身のファイル名をフルパス表記にしたもの
  %~DP0 :自身のフルパス名のパス部分

等が有りますが、この %~DP0 を使えば簡単です。
Z:\xxx\yyy\sample.bat なら Z:\xxx\yyy\ と取得されます。

  xcopy %~DP0eee\fff.txt c:\ggg\

または

  CD /D %~DP0
  xcopy .\eee\fff.txt c:\ggg\

でOKだと思います。Win2000以降なら使用可能。
Win9xについては手元に無いので何とも言えません。

もし実環境をお持ちでしたらヘルプをご確認下さい。
因みにWin2000の場合は、スタートメニューから起動するヘルプの
目次から「リファレンス」→「Windows 2000 コマンド リファレンス 」
→「% (置き換え可能パラメータ)」に解説が有ります。
    • good
    • 0
この回答へのお礼

ご解答ありがとうございました。
大変助かりました。
コマンド リファレンス 参考させて頂きます。

お礼日時:2003/10/16 12:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!