fixu
Goto Top

VBS - Alles kopieren ausser (exclude)

Hallo zusammen

Ich habe ein kleines VB Script gebastelt, welches Dateien von von "A" nach "B" kopieren soll (als Backup). Leider habe ich aber Dateien im Verzeichnis, welche geschützt sind. Somit bricht mein Script dort ab und bringt einen Fehler. Gibt es eine Möglichkeit, diese geschützten Order zu exclude so dass diese erst gar nicht kopiert werden?

Auszug aus dem Quellcode:

fso.CopyFolder "Z:\*", "" & scriptpath & UserName & "\Z\"
WScript.Echo "Z: Laufwerk wurde kopiert"

Content-ID: 124431

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

Ausgedruckt am: 23.11.2024 um 14:11 Uhr

bstefan82
bstefan82 08.09.2009 um 09:38:36 Uhr
Goto Top
Morgen,

die ON Error Anweisung suchst du wahrscheinlich.

Ich würde mir allerdings mal robocopy anschauen.


Grüße,

Stefan
Fixu
Fixu 08.09.2009 um 10:12:14 Uhr
Goto Top
Hmmm on Error habe ich schon aktiv, aber dies löst mein Problem nicht. Er übergeht zwar die Fehlermeldung, jedoch wird der Copy-Job trotzdem abgebrochen.
Ich suche eigentlich eine Möglichkeit, dass ich dem Script sagen kann, es soll alles kopieren ausser die Ordner XYZ, ABC etc. Gibt es sowas?
Pjordorf
Pjordorf 08.09.2009 um 10:24:18 Uhr
Goto Top
Hallo,

Hmmm on Error habe ich schon aktiv, aber dies löst mein Problem
nicht. Er übergeht zwar die Fehlermeldung, jedoch wird der
Copy-Job trotzdem abgebrochen.
Das liegt dann an dein Skript.

Ich suche eigentlich eine Möglichkeit, dass ich dem Script sagen
kann, es soll alles kopieren ausser die Ordner XYZ, ABC etc. Gibt es
sowas?
Sagt es doch deinem Skript, das die Ordner XYZ oder ABC oder etc übergangen werden. Du scheinst die ja zu kennen.

Lies mal http://msdn.microsoft.com/de-de/library/5hsw66as(VS.80).aspx

Peter
Poste mal deinen ganzen quelltext hier. Dann kann dir auch geholfen werden
Fixu
Fixu 08.09.2009 um 11:00:01 Uhr
Goto Top
@Pjordorf
Und wie sage ich dies dem Script? Dies konnte ich nicht mit dem On Error lösen...

Hier noch das ganze Script:

Option Explicit

on error resume next

Dim WshShell, fso, f, UserName, fs, scriptname, scriptpath

Set WshShell = WScript.CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")

Username = WshShell.ExpandEnvironmentStrings("%UserName%")

'Ordner mit Benutzernamen wird, samt Unterverzeichnisse, im Verzeichnis wo Skript ausgeführt wird, angelegt
Set f = fso.CreateFolder("" & scriptpath & UserName & "")
Set f = fso.CreateFolder("" & scriptpath & UserName & "\Z\")
WScript.Echo "Ordner wurden erstellt"


'Archive.pst wird kopiert
fso.CopyFolder "C:\Documents and Settings\" & UserName & "\Local Settings\Application Data\Microsoft\Outlook", "" & scriptpath & UserName & "\"
WScript.Echo "Outlook Archiv wurde kopiert"


'Desktopinhalt wird kopiert
fso.CopyFolder "C:\Documents and Settings\" & UserName & "\Desktop", "" & scriptpath & UserName & "\"
WScript.Echo "Desktop Inhalt wurde kopiert"


'My Documents wird kopiert
fso.CopyFolder "C:\Documents and Settings\" & UserName & "\My Documents", "" & scriptpath & UserName & "\"
WScript.Echo "My Documents wurde kopiert"


'Z Laufwerk wird kopiert
fso.CopyFolder "Z:\*", "" & scriptpath & UserName & "\Z\"
fso.CopyFile "Z:\*", "" & scriptpath & UserName & "\Z\"
WScript.Echo "Z: Laufwerk wurde kopiert"


'WScript.Echo UserName


set fs = CreateObject("Scripting.FileSystemObject")

scriptname = Wscript.ScriptFullName
scriptpath = fs.getparentfoldername(scriptname)

'Wscript.Echo scriptpath

Wscript.Echo "Script ist fertig!"
81825
81825 08.09.2009 um 11:07:19 Uhr
Goto Top
Das Neuerfinden des Rades ist immer gut. face-big-smile

Eingabeaufforderung:
xcopy /?
Fixu
Fixu 08.09.2009 um 11:32:26 Uhr
Goto Top
Ist es nicht einfacher dies mit CopyFolder / CopyFile zu machen? Weil xcopy kenne ich gar nicht, und auch hier müsste ich Excludes machen...
Weiss niemand wie ich solche Exlude mit CopyFolder / CopyFile machen kann?
81825
81825 08.09.2009 um 11:35:57 Uhr
Goto Top
In der Zeit, die du mit Basteln an deinem Script und Warten auf Hilfe zu deinem Vorhaben hier verbringst, hättest du nach dem Lesen der Hilfe zu XCOPY bereits mindestens 3 komplette Festplatten kopieren können.

Wenn dich das Lesen und Verwenden von Parametern natürlich überfordert, ist es sicher einfacher, du schreibst was selbst. face-big-smile