2011-01-26 21 views
0

実行中のxcopyスクリプトは、ディレクトリとファイル名を持つ.csvファイルを読み込み、ファイルをコピーするために解析します。ここでxcopyを使用したコマンドプロンプトログ

はスクリプトです:コマンドプロンプトに

echo F | for /f "delims=, tokens=1,2,3" %i in (D:\foo.csv) 
do xcopy /i /d "Z:\%i\%j\%k" "Y:\%i\%j\%k" >> "D:\xcopy\Log.txt" 

出力が実行されているコマンドです:

echo F | xcopy /i /d "Z:\hcri001\a1\ 
ffce5a14-33ca-43cf-b366-af266c450979" "Y:\hcri001\a1\ffce5a14-33ca-43cf-b366 
-af266c450979" 1>>"D:\xopy\Log.txt 

はしかし、ログはただのコマンドの出力を持っています

0 File(s) copied 
0 File(s) copied 
0 File(s) copied 
Does Y:\hcri001\2d\545392db-50fa-40d9-aaa2-0892ca5057f3 specify a file name 
or directory name on the target 
(F = file, D = directory)? F 
Z:\hcri001\2d\545392db-50fa-40d9-aaa2-0892ca5057f3 
1 File(s) copied 

コマンドと出力の両方が実行されていますか? また、私は行の先頭に置くことができる何らかの種類のカウンターを持っていますか?

私の理想のログファイルは、この形式で次のようになります。

1) C:\Desktop>echo F | xcopy /i /d "Z:\hcri001\a7\ 
    00a62a73-d7a7-4cfb-b55c-457bc67b3647" "Y:\hcri001\a7\00a62a73-d7a7-4cfb-b55c 
    -457bc67b3647" 1>>"D:\Robocopy\AtlusPatient131172CopyLog.txt 
    0 File(s) copied 
    2) C:\Desktop>echo F | xcopy /i /d "Z:\hcri001\d5\ 
    003452354-d7a7-4cfb-452c-457bc67b3647" "Y:\hcri001\d5\003452354-d7a7-4cfb-452c-457bc67b3647" 1>>"D:\Robocopy\AtlusPatient131172CopyLog.txt 
    0 File(s) copied 
    3) C:\Desktop>echo F | xcopy /i /d "Z:\hcri001\2d\545392db-50fa-40d9-aaa2-0892ca5057f3" "Y:\hcri001\2d\545392db-50fa-40d9-aaa2-0892ca5057f3" 1>>"D:\Robocopy\AtlusPatient131172CopyLog.txt 
Does Y:\hcri001\2d\545392db-50fa-40d9-aaa2-0892ca5057f3 specify a file name 
     or directory name on the target 
     (F = file, D = directory)? F 
     Z:\hcri001\2d\545392db-50fa-40d9-aaa2-0892ca5057f3 
     1 File(s) copied 

とボーナスポイントのコマンドをトリミングすることができた場合、ファイル名の代わりに、1) "Z:\hcri001\2d\545392db-50fa-40d9-aaa2-0892ca5057f3" 0 File(s) copied

+0

スクリプト内ではなく、スクリプトレベルでリダイレクトしようとしましたか?私はa.cmd >> log.txt –

答えて

1
for /f "delims=, tokens=1,2,3" %i in (D:\foo.csv) do (
    echo xcopy /i /d "Z:\%i\%j\%k" "Y:\%i\%j\%k" >> "D:\xcopy\Log.txt" 
    echo f | xcopy /i /d "Z:\%i\%j\%k" "Y:\%i\%j\%k" >> "D:\xcopy\Log.txt" 
) 

すなわちコマンド全体を含めるだけのためにカウンターの場合はSETLOCAL ENABLEEXTENSIONS、次にset counter=1 、ループの内側set /a counter=!counter! + 1

+0

を意味します上記の私はコピーしようとする各イメージの次のエラーを与えています:プロセスが別のプロセスで使用されているため、ファイルにアクセスできません。なぜなら、入力を書き込んでいる間に出力をログファイルに追加しようとしているからですか? – Saggio

+0

私はまだ上記のエラーなしで(これを少し修正した後でも)これを実行するようには思えません。 – Saggio

関連する問題