プロが教える店舗&オフィスのセキュリティ対策術

xcopy "d:\MY documents\" "f:\My Documents\" /d /s
上記コマンドを記述したバッチファイルを実行すると
C:\Documents and Settings\倉庫番.PC.000\デスクトップ>xcopy "d:\MY documents\" "f:\My Documents\" /d /s
無効なパスの指定です
0 個のファイルをコピーしました

C:\Documents and Settings\倉庫番.PC.000\デスクトップ>pause
続行するには何かキーを押してください . . .

とエラーがでます。なぜでしょうか?
d:\はノートPCのdドライブ、fはUSB接続したHDです。
更新したファイルだけをバックアップしたいのですが・・・
宜しくお願いします。

A 回答 (9件)

受け側にフォルダやファイルがない状態で試すと分かります。


(初回のコピーという意味です)
「xcopy "d:\MY documents" "f:\My Documents" /d /s」
ですと、フォルダのコピーなのかファイルのコピーなのかを
確認する表示が出るため、バッチファイルなどでは処理が止まります。

受け側に「\」を付けることで、フォルダのコピーであることを
明示的に指定することができるのです。
(もちろん全て試してからお話ししていますよ)
    • good
    • 4

受け側の「\」まで省略したらファイルかディレクトリかを


聞いてきてうっとうしいんじゃないかな?

この回答への補足

受け側の¥省略しても実行できてます。
実際に試してから回答するようにしてくださったほうがありがたいです。

補足日時:2009/08/01 11:29
    • good
    • 0

C:\>Robocopy /?



使用法:: ROBOCOPY コピー元 コピー先 [ファイル [ファイル]...]
[オプション]
-----------------------------------
↑こう言うのもあります。
    • good
    • 1
この回答へのお礼

ありがとうございました。
今回は下記の方々の方法でできたのでまた使ってみます。

お礼日時:2009/08/01 11:29

捕捉です。



N0.3さん、No.4さんの回答でもうまく行くことを確認しました。

大変失礼しました。。。

ダブルクォーテーションが使えるのであれば、私の回答より使いやすいかもしれませんね。
なので、私も
 xcopy "d:\my documents" "f:\my documents" /d /s

をお奨めします。m(_~_)m
    • good
    • 0
この回答へのお礼

ありがとうございました。
DOS時代だと、半角8文字で無ければファイル名がつけられなかったので考えることはありませんでしたが、WINになってからはファイル名制限がなくなっている(?もしかしてある?)のでフォルダ名をつけるときは内容のわかりやすい日本語でつけたいです。
すると、バックアップもそのフォルダ名を使えたほうが便利と思います。
kaz2014さんも""を活用されればWINでもDOSがもっと活用できるかと思います。(質問しといてえらそうにすみません。)

お礼日時:2009/08/01 11:25

なんか皆さん、書いていることがバラバラのようなんですが・・・(^-^;


ほんとにその構文で成功しました?

ダブルクォーテーションは、DOSコマンドでは使わないのが得策です。
なので、FドライブにすでにMy Documentsフォルダがあることを前提とすれば、

xcopy d:\mydocu~1 f:\mydocu~1 /s /d

でコピーできました。
ちょっと反則技かもしれませんが、DOSでは半角英数文字で8文字以内という命名規則があり、これの名残を逆に使う方法が一番手っ取り早いと思います。
他のフォルダでも同様に、
・スペースは省略して半角6文字(全角なら3文字)プラス[~1]を付けて、合計8文字のフォルダ名を作る
のがコツです。
前半の6文字が同じフォルダが2つ以上ある場合は、チルダの後ろの番号を増やし、~2、~3、・・・
とします。
    • good
    • 0

送り側の末尾に「\」が要りません。


xcopy "d:\MY documents" "f:\My Documents\" /d /s

当然ですけど今回の場合は送り側と受け側のパラメータを「""」で囲まないといけません。
    • good
    • 1
この回答へのお礼

なぜかWIN95のDOSコマンドは¥つけてても実行できていたので
そのままコピーして使ってみたら失敗でした。
ありがとうございました。うまくいきました。
受け側にも¥なくても実行できてます。

お礼日時:2009/08/01 11:17

なんか違う答えを教えられているようでかわいそうなので…


現在の
xcopy "d:\MY documents\" "f:\My Documents\" /d /s
を以下のようにフォルダ名の直後の \ を取り除いてください。

xcopy "d:\MY documents" "f:\My Documents" /d /s

これで正しくコピーされると思います。
    • good
    • 3
この回答へのお礼

なぜかWIN95のDOSコマンドは¥つけてても実行できていたので
そのままコピーして使ってみたら失敗でした。
ありがとうございました。うまくいきました。

お礼日時:2009/08/01 11:10

>d:\MY documents\



Y documentsは、dドライブの直下に作成されているのでしょうか?
f:\My Documentsも同様です。

それと \s というパラメータは有りましたか?当方、XPのコマンドプロンプトで見る限りないですが。

この回答への補足

>d:\MY documents\
この通りです。dの直下に作成しています。
\Sではなく/sです。
サブフォルダ以下もコピーする場合のスイッチです。

補足日時:2009/08/01 08:32
    • good
    • 0

xcopy "d:\MY documents\" "f:\My Documents\" /d /s



xcopy d:\MY documents\ f:\My Documents\ /d /s

""を外してみて下さい。
USBメモリがちゃんとみえてるか、dir f:\とかで確認。

この回答への補足

""は省略してみましたができませんでした。
ちなみにfはUSBメモリじゃなくて外付けHDです。
フォルダ名に空白を含むときは""で囲むというルールがあると。
説明不足でしたが、WIN95ではこのコマンドで実行していますがXPでやろうとしたらできないという状況です。

補足日時:2009/08/01 08:28
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A