2017-02-27 5 views
-4

Ich brauche die Anzahl der Dateien, die ich mit Robocopy verschoben habe. Ich habe viele Methoden ausprobiert, aber ich brauche genau die Nummer die ich in der cmd Zeile sehe nachdem robocopy den Vorgang beendet hat und mir das Ergebnis zeigt.Die Anzahl der verschobenen Dateien robocopy

Kopierte Dateien - x

Wie kann ich den Wert von x bekommen? Vielen Dank im Voraus.

Antwort

1
robocopy [Whatever Options] | findstr "Copied files" 

werden Sie nur auf den Abschlussbericht erhalten.

Sie müssen nur für die tatsächliche Zahl analysieren, die Sie mit einer for Schleife tun können.

Ich würde Ihnen mehr helfen, aber Sie haben keinen Code angezeigt.


Als ich Robocopy laufen, der Ausgang ich sieht aus wie:

   Total Copied Skipped Mismatch FAILED Extras 
    Dirs :   1   0   1   0   0   0 
    Files :  12  12   0   0   0   0 
    Bytes : 49.91 m 49.91 m   0   0   0   0 
    Times : 0:00:00 0:00:00      0:00:00 0:00:00 

Dieses sehr verschieden von Ihrem Bericht ist, dass Sie Copied Files - X sehen.


Ich denke, dies immer in der Nähe ist, was Sie wollen:

setlocal enabledelayedexpansion 

for /f "tokens=3 delims=: " %%a in ('robocopy [options] ^| findstr /C:Files ') do (
    set num=%%a) 

echo Files That Got Copied: %num% 

(leicht getestet, es scheint zu funktionieren)

+0

Danke für die reply.If bekam ich Es ist möglich, zu verwenden findstr richtig in Dateien suchen gerade, so habe ich eine Protokolldatei mit Robocopy Bericht zunächst zu schreiben und dann versuchen, meine Phrase dort zu finden. Ist das richtig? Welchen Code möchten Sie sehen? Ich habe nur mit robocopy verbunden. –

+0

Ich habe gerade Robocopy auf meinem Rechner laufen lassen und es enthält ** nicht ** die Ausgabe 'Kopierte Dateien - X'. Welche Möglichkeiten geben Sie an robocopy weiter? Welche genaue Ausgabe sehen Sie? – abelenky

+0

Ich bekomme das gleiche, aber auf Russisch. Das tut mir leid. Also muss ich in deinem Fall die Nummer 12 holen, Dateien, die kopiert werden. Setlocal enabledelayedextantion robocopy [Optionen] | für/f "Token = 4 delims = ......." %% a in ('findstr/I "Dateien) setze num = %% ein Echo! num! Ich sehe in cmd set num = 12 aber tatsächlich ändert es sich nicht, wenn ich es danach benutze. Vielen Dank. –

0

Wenn Sie dann ein Protokoll erstellen möchten Sie die Option /log verwenden. Andernfalls können Sie die Anzahl Ihrer kopierten Dateien sehen, solange Sie die Option /njs NICHT verwenden.

for /f "tokens=3 skip=1" %%a in (
'robocopy /L . " nothing ..//" ^|findstr /rc:": *[0-9][0-9]* "' 
)do echo %%a 
+0

Sorry, aber ich kann immer noch nicht auf die Idee kommen. Dein Code gibt mir Echo ':' zurück. Außerdem weiß ich nicht, wie robocopy im Zyklus arbeiten kann. Ich möchte Dateien mit Robocopy verschieben (ziemlich einfach) und dann die Anzahl der kopierten Dateien in die Variable schreiben. Diese Nummer muss ich von Robocopys Bericht bekommen. Sry für keinen Code. Ich bin gezwungen, mein Smartphone zu benutzen –

Verwandte Themen