Robocopy in VB Script einbinden
Guten Morgen zusammen,
ich hoffe ihr könnt mir helfen...
Ich versuche mittels einem VB Script eine Programm zu starten. Soweit so gut, das klappt alles.
Allerdings muss nun noch in diesem Script ein Robocopy Befehl eingebunden werden, der noch vor dem Start des Programms einen Ordner, falls noch nicht vorhanden, in das User Profil kopiert.
Mit Hilfe von Google, habe ich folgendes zusammengeschrieben:
IF NOT (fs.folderExists("%USERPROFILE%\Application Data\Quest Software")) THEN
Set objShell = CreateObject("Wscript.Shell")
objSource = InputBox("K:\Program Files\Quest Software\Toad for Oracle\USERPROFILE\Application Data\Quest Software")
objDestination = InputBox("%USERPROFILE%\Application Data\Quest Software")
objCommand = "RoboCopy.Exe " & Chr(34) & objSource & Chr(34) & " " & Chr(34) & objDestination & Chr(34) & " /MIR"
objShell.Run(objCommand)
END if
(Das ist nur der Teil mit Robocopy, der Rest funktioniert alles)
Wenn ich das Script ausführe, kommt folgende Meldung:
Nach einbinden der Zeile von Tacker kommt folgende Meldung:
Habt ihr eine Idee?
ich hoffe ihr könnt mir helfen...
Ich versuche mittels einem VB Script eine Programm zu starten. Soweit so gut, das klappt alles.
Allerdings muss nun noch in diesem Script ein Robocopy Befehl eingebunden werden, der noch vor dem Start des Programms einen Ordner, falls noch nicht vorhanden, in das User Profil kopiert.
Mit Hilfe von Google, habe ich folgendes zusammengeschrieben:
IF NOT (fs.folderExists("%USERPROFILE%\Application Data\Quest Software")) THEN
Set objShell = CreateObject("Wscript.Shell")
objSource = InputBox("K:\Program Files\Quest Software\Toad for Oracle\USERPROFILE\Application Data\Quest Software")
objDestination = InputBox("%USERPROFILE%\Application Data\Quest Software")
objCommand = "RoboCopy.Exe " & Chr(34) & objSource & Chr(34) & " " & Chr(34) & objDestination & Chr(34) & " /MIR"
objShell.Run(objCommand)
END if
(Das ist nur der Teil mit Robocopy, der Rest funktioniert alles)
Wenn ich das Script ausführe, kommt folgende Meldung:
Nach einbinden der Zeile von Tacker kommt folgende Meldung:
Habt ihr eine Idee?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 85720
Url: https://administrator.de/forum/robocopy-in-vb-script-einbinden-85720.html
Ausgedruckt am: 24.12.2024 um 01:12 Uhr
10 Kommentare
Neuester Kommentar
Hallo fraggle666!
Ungetestet etwa so:
Grüße
bastla
P.S.: Tust Du uns allen bitte den Gefallen, Scripts beim Posten unter -Tags zu stellen?
Ungetestet etwa so:
IF NOT (fs.folderExists("%USERPROFILE%\Application Data\Quest Software")) THEN
ROBO ="K:\Program Files\batch\robocopy.exe"
erg = WshShell.Exec("ROBO ""K:\Program Files\Quest Software\Toad for Oracle\USERPROFILE\Application Data\Quest Software"" ""%USERPROFILE%\Application Data\Quest Software"" /MIR")
END if
Grüße
bastla
P.S.: Tust Du uns allen bitte den Gefallen, Scripts beim Posten unter -Tags zu stellen?
nochma von vorn
set fs = createobject("scripting.filesystemobject")
set WshShell = createobject("wscript.shell")
IF NOT (fs.folderExists("%USERPROFILE%\Application Data\Quest Software")) THEN
ROBO ="K:\Program Files\batch\robocopy.exe "
source = "K:\Program Files\Quest Software\Toad for Oracle\USERPROFILE\Application Data\Quest Software "
target = "%USERPROFILE%\Application Data\Quest Software "
parameter = "/MIR"
erg = WshShell.Run(ROBO & source & target & parameter)
END if
@fraggle666
Sorry, hatte zu kurz drübergeschaut - da ja im Pfad zu "Robocopy" ebenfalls Leerzeichen enthalten sind, müsste das eher so aussehen:
Ein Detail am Rande (und nicht verantwortlich für das "Robocopy"-Startproblem):
In der per "Exec" geöffneten Shell stehen %USERPROFILE% oder %APPDATA% zur Verfügung, in VBS müssen sie aber aufgelöst werden.
Grüße
bastla
Sorry, hatte zu kurz drübergeschaut - da ja im Pfad zu "Robocopy" ebenfalls Leerzeichen enthalten sind, müsste das eher so aussehen:
ROBO = """K:\Program Files\batch\robocopy.exe"" "
erg = WshShell.Exec(ROBO & """K:\Program Files\Quest Software\Toad for Oracle\USERPROFILE\Application Data\Quest Software"" ""%USERPROFILE%\Application Data\Quest Software"" /MIR")
Das Zielverzeichnis "%USERPROFILE%\Application Data\" existiert.
... sollte aber besser so angesprochen werden:IF NOT (fs.folderExists(WshShell.ExpandEnvironmentStrings("%APPDATA%\Quest Software"))) THEN
Grüße
bastla
@fraggle666
Freut mich, dass wir das mit vereinten Kräften geschafft haben ...
Vielleicht nochmals der Hinweis auf die Formatierung beim Posten: Wenn Du Dein Script (Deine Scriptzeile) zwischen < code> und < /code> (jeweils ohne Leerzeichen) stellst, wird es als Codeblock dargestellt.
Grüße
bastla
Freut mich, dass wir das mit vereinten Kräften geschafft haben ...
Vielleicht nochmals der Hinweis auf die Formatierung beim Posten: Wenn Du Dein Script (Deine Scriptzeile) zwischen < code> und < /code> (jeweils ohne Leerzeichen) stellst, wird es als Codeblock dargestellt.
Grüße
bastla