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

タイトルのとおり、受け取りフォルダ名を指定しないXCOPYの方法を模索しています。

例: C:¥ProgramSourceディレクトリの内容をD:¥BACKUPフォルダにコピーしたい。
  C:¥ProgramSourceの中身がA.c, B.Hという2つのファイルが存在するときには、D:¥BACKUPフォルダ内に
  D:¥BACKUP¥ProgramSource¥A.c
  D:¥BACKUP¥ProgramSource¥B.H
  というファイルを作りたいのです。

通常であれば、XCOPY /S/E/I C:¥ProgramSource¥*.* D:¥BACKUP¥ProgramSource¥*.* でコピーできるのですが、この方法だと間違えて受け取りフォルダ名をD:¥BACKUP¥PROGRAMSOURCE¥*.* と書いてしまうとターゲットが大文字になってしまいます。
どうにか送り側のフォルダ名を使うことはできないでしょうか?

※/と¥は文字化けするかもしれないので、全角文字で書いています。

A 回答 (3件)

出来ないと思います。


解決案としては、
・打ち込まず、コピーペーストする
・バッチファイルにする
    • good
    • 0
この回答へのお礼

ありがとうございます。
やはり無理ですかね~。(;;)

もうすこし、検討してみます。

お礼日時:2006/01/16 09:10

Cの直下は厳しいですね。


特定のディレクトリ以下のフォルダごと全てのコピーでは、何か不都合があるのでしょうか?
フォルダ構成
c:\work\test(フォルダtest内にはファイルが存在するものとする)
XCOPY c:\work d:\backup /s
結果
d:\backup\test
    • good
    • 0
この回答へのお礼

ありがとうございます。
> 特定のディレクトリ以下のフォルダごと全てのコピーでは、何か不都合があるのでしょうか?

不都合です。(すみません)
バックアップ目的ではなく、ある時点での対象フォルダ(またこれがばらばらの位置にある)の差分をとるためにその時点のフォルダの内容を採取しようと思っています。

やはり、通常のXCOPYではどうしようもないでしょう。

ありがとうございました

お礼日時:2006/01/16 09:14

よく分からないのですが、No.2さんの方法だと、d:\backup\test になっちゃうからいやってことなんでしょうかねぇ? (d:\backup\work\test になって欲しいってことかな?)



バッチファイル書いたらどうでしょう?

----
@echo off
IF "%~1" == "" (
echo usage bkup.bat [dirName]

) else (
echo xcopy /s /e /i %1 "d:\backup%~pn1"
)
----

こんな感じで。これを bkup.bat って名前で保存して

bkup "c:\program files"

などとバックアップしたいディレクトリを指定して(空白が含まれる時は""つけて)実行してみてください。このままでは実行されず、コマンドが表示されるので、確認してください。気に入ったら echo xcopy の部分の echo を消して実際に適当なパラメータつければいいんじゃないかと思いますが。
(なお、xcopy はディレクトリ末尾に \*.* は指定する必要はありません)

%1 は引数で、さらに ~ と変な記号が付いてますが、
詳しくは cmd.exe /? で調べてください。
    • good
    • 0
この回答へのお礼

ありがとうございます。

バッチファイルもしくはvbsで行うことを考えていました(それしか方法がないかなぁと思っていました)が、結構、シンプルなバッチファイルだったので正直驚いております。(最近の拡張シェル?置換可能パラメータでここまでできるとは気づきませんでした。)

お礼日時:2006/01/16 09:22

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