nightythehawk
Goto Top

Xcopy Auswertung in Variable speichern

Hallo Admins & Co,

bin gerade auf der Suche nach einer Möglichkeit die Auswertung meiner Batchdatei in eine Variable zu speichern und sie am Ende nochmal als Info auszugeben.

Mein Skript kopiert via xcopy Daten von einem PC auf den Stick in die dafür erstellen Ordner, das klappt soweit auch alles gut!
Jetzt soll aber am Ende meines Batchskriptes eine Auflistung kommen wie viele Daten er kopiert hat!
xcopy gibt ja nach jedem Kopiervorgang automatisch an das ** Dateien kopiert wurden.
Kann man diese Ausgabe direkt in eine Variable umleiten?

Hoffe Ihr versteht was ich meine ;)

Einen guten Start in den letzten Arbeitstag dieser Woche!

Gruß Nighty

Content-ID: 250786

Url: https://administrator.de/forum/xcopy-auswertung-in-variable-speichern-250786.html

Ausgedruckt am: 22.12.2024 um 23:12 Uhr

laster
laster 02.10.2014 um 11:16:59 Uhr
Goto Top
Hallo Nighty,

for /F "tokens=1 Delims= " %%i in ('xcopy /s /e /Y c:\temp\*.txt d:\yyy ^| find " Datei(en) kopiert"') do @set WORT=%%i  
echo %WORT%

Kopiert alle TXT-Dateien von c:\temp nach d:\yyy und gibt am Ende die Anzahl (Variable WORT) aus. Mit WORT kannst Du dann weitermachen ...

VG
LS
Nightythehawk
Nightythehawk 02.10.2014 um 11:43:25 Uhr
Goto Top
Ok, mein aktueller Befehl lautet:

"%SCRIPT_PFAD%\xcopy_xp.exe" "C:\Dokumente und Einstellungen\%NAME%\Desktop" "%SCRIPT_PFAD%\%COMPUTERNAME%\%USERNAME%\Desktop" /i /s /e /y /q

(Die Deklarierung der Variablen geschieht am Anfang.)

Deine Zeile mit meiner gefüttert würde dann so aussehen, ist das richtig?

for /F "tokens=1 Delims= " %%i in ('xcopy /i /s /e /y /q C:\Dokumente und Einstellungen\%NAME%\Desktop %SCRIPT_PFAD%\%COMPUTERNAME%\%USERNAME%\Desktop ^| find " Datei(en) kopiert"') do @set WORT=%%i

und das kann ich dann direkt mit meiner Zeile im Skript ersetzen? Oder muss ich da noch was beachten?

Gruß Nighty
Nightythehawk
Nightythehawk 02.10.2014 um 11:50:18 Uhr
Goto Top
Nachtrag.

Habe den neuen Skriptteil getestet, leider erhalte ich die Meldung " Unzulässige Parameteranzahl".
Die Parameter habe ich bis auf /y rausgenommen aber kommt trotzdem noch.. hm ..
Biber
Biber 02.10.2014 um 13:02:36 Uhr
Goto Top
Moin Nightythehawk,

dann setze doch den Quellpfad-mit-Leerzeichen in Anführungszeichen ("C:\Dokumente und was auch immer...\...\Desktop").

Grüße
Biber
Nightythehawk
Nightythehawk 02.10.2014 um 13:19:08 Uhr
Goto Top
Danke Biber, das hat noch gefehlt!

Eine Frage zu den Tokens ! Wenn ich die Zeile nochmal verwenden möchte, muss ich dann "tokens=2" setzen!?
laster
laster 02.10.2014 um 13:49:53 Uhr
Goto Top
Hallo,

Tokens=1 bedeutet, dass von der Ausgabe (Teil in den Klamern) das 1. Wort (getrennt durch Leerzeichen) verwendet wird.
Wenn Du die Anweisung/Zeile mehrfach hintereinander ausführst, ändert das nichts an dem Ergebnis (mal abgesehen von der Anzahl ...)

VG
LS
Nightythehawk
Nightythehawk 02.10.2014 um 14:06:02 Uhr
Goto Top
Verstehe, ok!

Also der Test mit der Zeile war erfolgreich, in meinem Skript allerdings führt es zu einem direkten Absturz, trotz Pause.

Der Unterschied zwischen meinem Test-Skript und dem richtigen Skript ist das Ziel von XCOPY, im richtigen Skript wird dafür erst der USB-Stick mit %SCRIPT_PFAD% ausgewählt (vorher im Skript mit "@SET SCRIPT_PFAD=%~dp0" gesetzt".

Richtige Skript:
for /F "tokens=1 Delims= " %%i in ('xcopy /i /s /e /y /q "C:\Dokumente und Einstellungen\%NAME%\Desktop %SCRIPT_PFAD%\%COMPUTERNAME%\%USERNAME%\Desktop ^| find " Datei(en) kopiert"') do set Ausgabe1=%%i

Test-Skript:

@for /F "tokens=1 Delims= " %%i in ('xcopy /i /s /e /y /q "C:\Dokumente und Einstellungen\%NAME%\Desktop" C:\Test\ ^| find " Datei(en) kopiert"') do set WORT=%%i

Sorry das ich gerade soviel nachfragen muss^^

Gruß Nighty
laster
laster 02.10.2014 aktualisiert um 14:14:03 Uhr
Goto Top
Der Unterschied zwischen meinem Test-Skript und dem richtigen Skript ist
das vergessene doppelte Anführungszeichen zum Abschluß des Quellpfades.

setz vor die Zeile mal ein echo und schau Die die Ausgabe genau an, schrittweise herantesten ...

Gruß
LS
laster
laster 06.10.2014 um 09:21:43 Uhr
Goto Top
Hallo Nighty,

wenn's geholfen hat, bitte [Zur Lösung beigetragen] anklicken.
Schöne Woche!

LS
Nightythehawk
Nightythehawk 06.10.2014 um 11:55:06 Uhr
Goto Top
Hallo laster,

bin noch dabei zu testen, werde das Ergebnis auch nochmal posten!

Gruß Nighty