Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

VBS: Kopieren von Files mit Robocopy

Frage Entwicklung Visual Studio

Mitglied: Frodo2

Frodo2 (Level 1) - Jetzt verbinden

21.10.2013 um 17:31 Uhr, 2721 Aufrufe, 9 Kommentare, 3 Danke

Hallo.
Ich suche nach einer Möglichkeit, in einem VBScript mittels Robocopy einzelne Files zu kopieren. Bisher hab ich immer nur ganze Ordner kopiert.

Der allgemeine Syntax für das Kopieren von Files mit Robocopy ist ja meines Wissens nach: Robocopy "d:\Ort an dem File liegt" "D:\Ort wo das File hinsoll" "FileName.txt".

Hat jemand eine Idee, wie ich einzelne Files mittels Robocopy in VBS kopiere?

Grüße
Mitglied: colinardo
21.10.2013, aktualisiert um 19:34 Uhr
Hallo Frodo2,
kein Problem:
01.
Set oShell = WScript.CreateObject ("WScript.Shell") 
02.
oShell.Run "cmd /c Robocopy.exe ""d:\Ort an dem File liegt"" ""D:\Ort wo das File hinsoll"" ""FileName.txt"""
Grüße Uwe
Bitte warten ..
Mitglied: Frodo2
22.10.2013 um 09:34 Uhr
Hallo Uwe,

Vielen Dank, klappt so!
Hast du noch eine ebenso lockere Lösung für das Umbenennen von Files mittels VBS?

Das Kopieren und Umbenennen soll in meinem Script nämlich beides passieren.

Grüße
Bitte warten ..
Mitglied: colinardo
22.10.2013 um 09:41 Uhr
Natürlich, du kannst aber auch ohne die Hilfe von Robocopy mit VBS kopieren, siehe dazu die Kommentare im Code:
(Wichtig bei den Zielordnern ist der Backslash am Ende)
01.
Set fso = CreateObject("Scripting.Filesystemobject") 
02.
 
03.
'Datei verschieben 
04.
fso.MoveFile "C:\Datei.txt", "D:\Zielordner\" 
05.
 
06.
'Datei kopieren (wenn existierende Datei überschrieben werden sollen letzten Parameter auf 'True' setzen 
07.
fso.CopyFile "C:\Datei.txt", "D:\Zielordner\",False
Grüße Uwe
Bitte warten ..
Mitglied: Frodo2
22.10.2013, aktualisiert um 10:22 Uhr
Hi Uwe,

bin jetzt beim Kopieren + Umbenennen soweit:

Set objShell = Wscript.CreateObject ("WScript.Shell")
objShell.Run "cmd /c Robocopy.exe " & chr(34) & pfadohnefile & chr(34) & " " & chr(34) & zieldvz & chr(34) & " " & chr(34) & fileauspfad & chr(34)
'Beispiel: robocopy "D:\Test" "D:\Ort wo das File hinsoll" "neu.txt"

set FSO = CreateObject("Scripting.FileSystemObject")
set objFile = FSO.GetFile(zieldvz & "\" & fileauspfad)
'Beispiel: FSO.GetFile(D:\Ort wo das File hinsoll\neu.txt)

'Nun sollen bestimmte Endungen an den Filenamen, allerdings vor dem Punkt. So soll aus neu.txt beispielsweise neu_01.txt werden. Dafür teile ich den Namen in "neu" und ".txt", um beim Umbenennen meine gewünschte Nummer zu platzieren: filenameteil1 & "_" & meinenummer & filenameteil2 -> neu_01.txt

Pos1 = InStrRev(fileauspfad, Chr(46))
filenameteil1 = Mid(fileauspfad, 1, Pos1-1)
filenameteil2 = mid(fileauspfad, Pos1)

objFile.Name = filenameteil1 & "_" & meinenummer & filenameteil2

Das funktioniert wunderbar, wenn das File neu_01.txt noch nicht im Zielordner vorhanden ist, allerdings kommt eine Fehlermeldung, wenn doch. Hast du eine Idee, wie man das Umbenennen erzwingen kann, sprich, bestehende Files überschreiben?

Grüße
Bitte warten ..
Mitglied: colinardo
22.10.2013 um 10:28 Uhr
Zitat von Frodo2:
Das funktioniert wunderbar, wenn das File neu_01.txt noch nicht im Zielordner vorhanden ist, allerdings kommt eine Fehlermeldung,
wenn doch. Hast du eine Idee, wie man das Umbenennen erzwingen kann, sprich, bestehende Files überschreiben?
steht oben in den Kommentaren im Code (Zeile 6), einfach den dritten Parameter auf True setzen...
Bitte warten ..
Mitglied: Frodo2
22.10.2013 um 10:37 Uhr
Ja das habe ich probiert, bekam allerdings die Fehlermeldung Anweisungsende erwartet.
Hab es jetzt so gelöst:

if FSO.FileExists(zieldvz & "\" & filenameteil1 & "_" & meinenummer & filenameteil2) then
FSO.DeleteFile zieldvz & "\" & filenameteil1 & "_" & meinenummer & filenameteil2
end if

Danke für deine Hilfe hat mir echt geholfen

Schönen Tag noch
Bitte warten ..
Mitglied: colinardo
22.10.2013 um 10:47 Uhr
Ich würde dir mal die VBS und WSH Script Referenz ans Herz legen (http://www.administrator.de/forum/vbs-referenz-in-deutsch-219936.html#c ...)
Dann würdest du folgende Funktionen zum einfacheren Zerlegen von Dateinamen und Erweiterungen finden, dann musst du nicht mit Mid() und Co. hantieren:
fso.GetBaseName(Path)
fso.GetExtensionName(Path)
fso.GetAbsolutePathName(Path) 
Viel Erfolg
Grüße Uwe
Bitte warten ..
Mitglied: Frodo2
22.10.2013 um 11:29 Uhr
Hey coool

Das ist ja praktisch und sieht auch eleganter aus als mein Firlefanz. Danke für den Tip!!

Grüße
Bitte warten ..
Mitglied: colinardo
22.10.2013 um 11:58 Uhr
Wenn's das dann war, den Beitrag bitte noch als gelöst markieren. Merci.
Grüße Uwe
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...