2016-06-01 17 views
0

次のスクリプトを使用しています。私が "robocopy/mov/mt"で "move"を取り替えると、動かない。宛先は1つ上のレベルになり、宛先フォルダとしてファイルの名前が使用されます。エラーはあまりにも下にあります。xcopy to robocopy

代わりにrobocopyを使用するにはどうすればよいですか?私はマルチスレッドが必要です。

エラー= ERROR 123(0x0000007B)ソースディレクトリD:\ source \ FILE.tif \ にアクセスしています。ファイル名、ディレクトリ名、またはボリュームラベルの構文が正しくありません。

@echo off 

SETLOCAL ENABLEDELAYEDEXPANSION 

SET Source=D:\source 
SET Destination=D:\dest 

Echo Gather Top 30 files 
set SrcCount=0 
set SrcMax=31 
FOR /F "TOKENS=*" %%a IN ('dir /A-D /O-D /B "%Source%"\*.*') DO (
    SET /A SrcCount += 1 
    if !SrcCount! LEQ %SrcMax% (
MOVE "%source%\%%a" "%destination% 
) 
) 

これは私がしようとしていますものです:robocopyの引数で

@echo off 

SETLOCAL ENABLEDELAYEDEXPANSION 

SET Source=D:\source 
SET Destination=D:\dest 

Echo Gather Top 30 files 
set SrcCount=0 
set SrcMax=31 
FOR /F "TOKENS=*" %%a IN ('dir /A-D /O-D /B "%Source%"\*.*') DO (
    SET /A SrcCount += 1 
    if !SrcCount! LEQ %SrcMax% (
robocopy /mov /mt "%source%\%%a" "%destination% 
) 
) 
+0

コンソール・ウィンドウを開き、タイプ 'robocopyを/'?ヘルプを読んでください。ソースとデスティネーションに関して異なる構文があり、どちらもディレクトリとみなされます。あなたは構文を推測すべきではありません... – aschipfl

答えて

1

ルック:

のrobocopyを/?

------------------------------------------------------------------------------- 
    ROBOCOPY  ::  Robust File Copy for Windows 
------------------------------------------------------------------------------- 

    Started : Wed Jun 01 18:46:40 2016 

       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 "*.*"). 

最初の引数はソースディレクトリ、ないファイルです。ファイル名を渡しています。だから、

、代わりにこれを行う:/MTオプションについては

robocopy /mov /mt "%source%" "%destination%" "%%a" 

を、私はスレッドは異なるファイル、ない同じファイルのさまざまな部分をコピーするために使用されていると思います

一度に1つのファイルでしか呼び出せないので、実際にはマルチスレッドコピーを取得するとは思われません。

置換後の結果は、このようなrobocopyの単一の実行となりますので、あなたは、単一の文字列内のすべての30人のファイル名を収集する必要があります:

robocopy /mov /mt "sourceDir" "destDir" "file1" "file2" "file3" ... "file30" 
+0

優秀な先生、ありがとう。最初の議論についてのあなたの答えは上にあった。その問題を修正しました。私はスクリプト初心者です.../MTオプションの2番目の答えについては。私はこれを行う方法を研究する必要があります。これは、ネットワーク上でマルチスレッドに必要なので、私のスクリプトにとって非常に重要です。同期は遅すぎるでしょう。 –