• ベストアンサー

DOSコマンドでファイルをコピーできない。

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です。 更新したファイルだけをバックアップしたいのですが・・・ 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

なんか違う答えを教えられているようでかわいそうなので… 現在の xcopy "d:\MY documents\" "f:\My Documents\" /d /s を以下のようにフォルダ名の直後の \ を取り除いてください。 xcopy "d:\MY documents" "f:\My Documents" /d /s これで正しくコピーされると思います。

makisaori
質問者

お礼

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

その他の回答 (8)

  • Repetez
  • ベストアンサー率54% (132/242)
回答No.9

受け側にフォルダやファイルがない状態で試すと分かります。 (初回のコピーという意味です) 「xcopy "d:\MY documents" "f:\My Documents" /d /s」 ですと、フォルダのコピーなのかファイルのコピーなのかを 確認する表示が出るため、バッチファイルなどでは処理が止まります。 受け側に「\」を付けることで、フォルダのコピーであることを 明示的に指定することができるのです。 (もちろん全て試してからお話ししていますよ)

  • Repetez
  • ベストアンサー率54% (132/242)
回答No.8

受け側の「\」まで省略したらファイルかディレクトリかを 聞いてきてうっとうしいんじゃないかな?

makisaori
質問者

補足

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

noname#105835
noname#105835
回答No.7

C:\>Robocopy /? 使用法:: ROBOCOPY コピー元 コピー先 [ファイル [ファイル]...] [オプション] ----------------------------------- ↑こう言うのもあります。

makisaori
質問者

お礼

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

  • kaz2014
  • ベストアンサー率50% (7/14)
回答No.6

捕捉です。 N0.3さん、No.4さんの回答でもうまく行くことを確認しました。 大変失礼しました。。。 ダブルクォーテーションが使えるのであれば、私の回答より使いやすいかもしれませんね。 なので、私も  xcopy "d:\my documents" "f:\my documents" /d /s をお奨めします。m(_~_)m

makisaori
質問者

お礼

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

  • kaz2014
  • ベストアンサー率50% (7/14)
回答No.5

なんか皆さん、書いていることがバラバラのようなんですが・・・(^-^; ほんとにその構文で成功しました? ダブルクォーテーションは、DOSコマンドでは使わないのが得策です。 なので、FドライブにすでにMy Documentsフォルダがあることを前提とすれば、 xcopy d:\mydocu~1 f:\mydocu~1 /s /d でコピーできました。 ちょっと反則技かもしれませんが、DOSでは半角英数文字で8文字以内という命名規則があり、これの名残を逆に使う方法が一番手っ取り早いと思います。 他のフォルダでも同様に、 ・スペースは省略して半角6文字(全角なら3文字)プラス[~1]を付けて、合計8文字のフォルダ名を作る のがコツです。 前半の6文字が同じフォルダが2つ以上ある場合は、チルダの後ろの番号を増やし、~2、~3、・・・ とします。

  • Repetez
  • ベストアンサー率54% (132/242)
回答No.4

送り側の末尾に「\」が要りません。 xcopy "d:\MY documents" "f:\My Documents\" /d /s 当然ですけど今回の場合は送り側と受け側のパラメータを「""」で囲まないといけません。

makisaori
質問者

お礼

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

  • violet430
  • ベストアンサー率36% (27472/75001)
回答No.2

>d:\MY documents\ Y documentsは、dドライブの直下に作成されているのでしょうか? f:\My Documentsも同様です。 それと \s というパラメータは有りましたか?当方、XPのコマンドプロンプトで見る限りないですが。

makisaori
質問者

補足

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

  • mikinon
  • ベストアンサー率56% (613/1076)
回答No.1

xcopy "d:\MY documents\" "f:\My Documents\" /d /s xcopy d:\MY documents\ f:\My Documents\ /d /s ""を外してみて下さい。 USBメモリがちゃんとみえてるか、dir f:\とかで確認。

makisaori
質問者

補足

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

関連するQ&A