0cool
Goto Top

Vista VBScript robocopy Shell.Application

Hey Leute,

ich hab mal wieder ne Frage. Zu erst mal ein paar Vorab infos.

OS: Vista
Script Sprache VBScript
Tool Robocopy

So jetzt zu meinem Anliegen.
Ich habe ein Script geschrieben das eine ganze Ordner Struktur samt Inahlt kopiert und ein Log erzeugt. Das ganze funkitoniert wunderbar.

Jetzt soll ich dazu eine Statusanzeige erzeugen das den Fortschritt des Kopiervorgangs anzeigt.

Um Robocopy samt Parameter parameter zu benützen gehe ich folgendermassen vor:

set objshell = WSCript.CreateObject("WScript.Shell")  
objshell.run(robocopy.exe & quelle & ziel & parameter)

Das Klappt auch soweit alles gnaz gut. Leider bekomme ich direkt über Robocopy keine Statusanzeige hin da es sich nicht nur um eine Datei handelt sondern um einen ganzen Verzeichnisbaum.

Jetzt meine Idee:

Wenn man die Kopierfunktion von Windows einsetzt, bekommt man über das Object "Shell.Application" die Statusmeldung des Kopiervorgang zu sehen als ob man über die GUI copy und paste macht.
Kann ich das Object (Shell.Application) irgend wie mit Robocopy zusammenbringen oder gibt es einen anderen Weg mein Vorhaben zu verwirklichen?
Es muss auch keine Grafische anzeige sein die Anzeige kann auch in der Console dargestellt werden. Ich benötige nur eine Statusanzeige die ich mit Bordmitteln erzeugen kann.


Danke füre Hilfe.

Gruß

0cool

Content-Key: 160436

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

Printed on: April 25, 2024 at 03:04 o'clock

Member: bastla
bastla Feb 09, 2011 at 12:27:12 (UTC)
Goto Top
Hallo 0cool!

Etwa so:
objshell.run("cmd /c " & robocopy.exe & quelle & ziel & parameter)
Grüße
bastla
Member: 0cool
0cool Feb 09, 2011 at 12:34:37 (UTC)
Goto Top
@bastla: Danke für deine Antwort.

In wie fern bringt mir der Befehl eine Status anzeige über den aktuellen Stand des Kopiervorgangs?

Gruß

0cool

[Edit]

Ich habe deinen Vorschlag in mein Script eingebaut, jetzt öffnet sich das cmd fenster ganz kurz und schliesst sich wieder. Ohne den befehl cmd /c am Anfang klappt alles bis auf die Statusanzeige.

[/edit]
Member: bastla
bastla Feb 09, 2011 at 13:17:08 (UTC)
Goto Top
Hallo 0cool!

Dann verwende antatt "/c" den Schalter "/k" - so bleibt das Fenster offen ...

Grüße
bastla
Member: 0cool
0cool Feb 09, 2011 at 13:35:17 (UTC)
Goto Top
@bastla: ich glaube es liegt ein Missverständnis vor. Das Fenster bleibt wärend des Kopiervorgangs offen. Das ist auch so gewollt. Wärend des Kopiervorgangs wird auch angezeigt was er gerade macht, aber da es sich nicht nur um eine Datei oder um einen Ordner handelt, bekomme ich keine Statusanzeige, wieviel Prozent insgeamt kopiert wurden. und wielange das der Kopiervorgang noch dauert.

Als ergebnis von meiner Frage will ich sehen viel Prozent schon kopiert wurden und wie lange der Kopiervorgang ca noch dauert.

Gruß

0cool
Member: bastla
bastla Feb 09, 2011 at 14:04:31 (UTC)
Goto Top
Hallo 0cool!

Ok, falscher Dampfer ... face-wink

Welche Schalter verwendest Du? Mir fielen da "/ETA" sowie nicht "/NP" ein ...

Grüße
bastla
Member: 0cool
0cool Feb 10, 2011 at 08:56:08 (UTC)
Goto Top
@bastla: den Schalter ETA verwende ich. den Schalter NT verwende ich nicht.

Es erscheint von jedem Ordner der kopiert wird eine Statusanzeige, das ist zwar net aber bringt mich nicht wirklich weiter, da ich eine Statusanzeige des kommpletten Kopiervorgangs benötige.

Ich verwende folgende Schalter

Kopieren: /XF/ XJ /R:2 /W:2 /E /TEE

LOG:

/LOG: /X /V /TS /FP /BYTES /ETA


Gruß

0cool
Member: 0cool
0cool Feb 21, 2011 at 16:03:45 (UTC)
Goto Top
Hey Leute,

ich setzt den Beitrag auf gelöst, da ich einen anderen Weg gehe.

Ich Vergleiche die Größe des Quell Ordners mit der Größe des Zielordners und rechner mir über den Vergleich den Kopierstatus aus.

Gruß

0cool