移動コマンドが「0 ファイル」を返す原因は何でしょうか?

移動コマンドが「0 ファイル」を返す原因は何でしょうか?

移動コマンドを使用して別のコンピューターからファイルを取得するバッチ ファイルがあります。

move \\otherpc\source\directory\*.bin c:\destination\

通常、パターンに一致するファイルがない場合、move は次のように出力します。

重複したファイル名が存在するか、ファイルが見つかりません。

他のコンピュータが見つからないかアクセスできない場合は、次のように出力されます。

ネットワークパスが見つかりませんでした。

しかし、次のような移動コマンドが返されました:

0 個のファイルが移動されました。

ノート:

  • パターンに一致するファイルがあります
  • 宛先フォルダは存在します
  • ユーザーは両方のディレクトリ(ソースと宛先)に対して読み取り/書き込み権限を持っています
  • どのファイルも読み取り専用ではありません。
  • 宛先ドライブがいっぱいではありません。

他に何が欠けているのでしょうか? 移動がこのように動作する原因は何でしょうか?

答え1

何が問題の原因なのかはよく分かりませんが、潜在的な解決策については知っています:robocopy

moveは DOS の時代から存在し、それ以来あまり変わっていません。 と共にxcopy、新しく改良された に取って代わられましたrobocopy。 後者はより汎用性が高く、場合によってはバグが少し少なくなっています (ネットワークがその 1 つです)。

からrobocopy /?

      Usage :: ROBOCOPY source destination [file [file]...] [options]

     source :: Source Directory (drive:\path or \\server\share\path).
destination :: Destination Dir  (drive:\path or \\server\share\path).
       file :: File(s) to copy  (names/wildcards: default is "*.*").

        ...

       /MOV :: MOVe files (delete from source after copying).
      /MOVE :: MOVE files AND dirs (delete from source after copying).

このコマンドは次のコマンドと同等ですmove:

robocopy \\otherpc\source\directory c:\destination *.bin /mov

それが機能する場合は、なぜ機能しないのかを気にする必要はありませんmove。機能しない場合は、他に考えられる問題と回避策をいくつか示します。

  • ソース ファイルには開いているファイル ハンドルがあります。

  • ソースファイルが破損しています。

  • ソースファイルの名前が不適切です。

  • 他の PC の OS やファイル システムは Windows と完全に互換性がありません。

  • copy最初に試してみて、成功すればいいのですdel。なぜかは理解できませんでしたが、うまくmoveいかないときもあります...

関連情報