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-Key: 250786

Url: https://administrator.de/contentid/250786

Printed on: April 20, 2024 at 02:04 o'clock

Member: laster
laster Oct 02, 2014 at 09:16:59 (UTC)
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
Member: Nightythehawk
Nightythehawk Oct 02, 2014 at 09:43:25 (UTC)
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
Member: Nightythehawk
Nightythehawk Oct 02, 2014 at 09:50:18 (UTC)
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 ..
Member: Biber
Biber Oct 02, 2014 at 11:02:36 (UTC)
Goto Top
Moin Nightythehawk,

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

Grüße
Biber
Member: Nightythehawk
Nightythehawk Oct 02, 2014 at 11:19:08 (UTC)
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!?
Member: laster
laster Oct 02, 2014 at 11:49:53 (UTC)
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
Member: Nightythehawk
Nightythehawk Oct 02, 2014 at 12:06:02 (UTC)
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
Member: laster
laster Oct 02, 2014 updated at 12:14:03 (UTC)
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
Member: laster
laster Oct 06, 2014 at 07:21:43 (UTC)
Goto Top
Hallo Nighty,

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

LS
Member: Nightythehawk
Nightythehawk Oct 06, 2014 at 09:55:06 (UTC)
Goto Top
Hallo laster,

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

Gruß Nighty