Top-Themen

Aktuelle Themen (A bis Z)

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 Verzeichnis kopieren mit vb

Mitglied: reni09

reni09 (Level 1) - Jetzt verbinden

09.02.2011, aktualisiert 18.10.2012, 4375 Aufrufe, 16 Kommentare

Hallo,

ich hab leider fast null Ahnung von VB, muss aber per VB Verzeichnisse (rekursiv) kopieren lassen.

Nun hab ich mir mit Hilfe des Internets ein Script zusammen "gestolpert" ... nur leider tut es nicht

Es kommt keine Fehlermeldung (mehr), aber es wird auch nix kopiert.
Könntet ihr mir bitte weiterhelfen?

Hier der aktuellste Code (glaub 8. Versuch)

01.
Option Explicit 
02.
Dim objFSO, objFolder, strSrcFld, strDstFld 
03.
 
04.
strSrcFld = "C:\temp\ipos" 
05.
strDstFld = "C:\Dokumente und Einstellungen\admine\Desktop" 
06.
'strDstFld = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%USERPROFILE%") & "\Desktop" 
07.
Set objFSO = CreateObject("Scripting.FileSystemObject") 
08.
 
09.
If objFSO.FolderExists(strDstFld) Then 
10.
   Set objFolder = objFSO.GetFolder(strDstFld) 
11.
Else 
12.
   WScript.Echo "Ordner nicht da, er wird kopiert." 
13.
   objFSO.CopyFolder strSrcFld, strDstFld 
14.
End If 
15.
 
16.
Set objFSO = Nothing
Und das Ergebnis sollte möglichst so sein, das ich %USERPROFILE% verwenden kann.

Vielen Dank vorab!!
Gruß Renate
Mitglied: bastla
09.02.2011 um 22:19 Uhr
Hallo reni09!

Ich nehme an, das wäre eher so gemeint:
01.
Option Explicit 
02.
Dim objFSO, strSrcFld, strDstFld 
03.
strSrcFld = "C:\temp\ipos" 
04.
strDstFld = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\ipos" 
05.
 
06.
Set objFSO = CreateObject("Scripting.FileSystemObject") 
07.
If Not objFSO.FolderExists(strDstFld) Then 
08.
   WScript.Echo "Ordner nicht da, er wird kopiert." 
09.
   objFSO.CopyFolder strSrcFld, strDstFld 
10.
End If 
11.
 
12.
Set objFSO = Nothing
Es könnte zwar auch %USERPROFILE% verwendet werden, allerdings ist der Desktop unmittelbar als "SpecialFolder" ansprechbar (und da der mit allergrößter Wahrscheinlichkeit vorhanden ist , bin ich davon ausgegangen, dass das Vorhandensein des Ordners "ipos" auf dem Desktop geprüft werden sollte) ...

Grüße
bastla
Bitte warten ..
Mitglied: reni09
09.02.2011 um 22:29 Uhr
Hallo und vielen Dank bastla,

ich werd das morgen auch testen ... nur war das mit dem Desktop scheinbar ein doofes Beispiel
Im wahren Leben soll das Verzeichnis wirklich direkt nach %USERPROFILE% kopiert werden.

Wie müste es dann aussehen?

Und ja, es soll zuvor auch geprüft werden, ob das Verzeichnis schon existiert

Danke und Gruß
Bitte warten ..
Mitglied: bastla
09.02.2011 um 22:35 Uhr
Hallo reni09!
Im wahren Leben soll das Verzeichnis wirklich direkt nach %USERPROFILE% kopiert werden.
Dann hattest Du es ja eigentlich ohnehin schon:
strDstFld = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%USERPROFILE%") & "\ipos"
Grüße
bastla
Bitte warten ..
Mitglied: reni09
10.02.2011 um 16:03 Uhr
Hallo bastla,

ich danke dir wie verrückt ... so tuts jetzt *freu*

Noch eine Frage der Vollständigkeithalber:
Wenn es das Verzeichnis schon gibt, dann wird nix kopiert (logisch).
Aber das Script läuft normal weiter. Oder?
Weil dieser Teil kommt neu an den Anfang eines vorhandenen, aktiven VB-Scriptes.

Ach und noch was (weil ich dich grad so schön hier hab ;) ) ... gibts anstelle "objFSO.CopyFolder" auch was zum Ausschneiden?
(das würde ich vermutlich auch schnell im Netz finden, aber du hast es sicher sofort parat *vermut* ... Faulheit lässt grüßen, sorry)

Gruß reni
Bitte warten ..
Mitglied: reni09
10.02.2011 um 18:37 Uhr
Zitat von reni09:
Ach und noch was (weil ich dich grad so schön hier hab ;) ) ... gibts anstelle "objFSO.CopyFolder" auch was zum
Ausschneiden?

Ich glaub ich habs: "objFSO.MoveFolder" ... stimmts?
Bitte warten ..
Mitglied: bastla
10.02.2011 um 20:02 Uhr
Hallo reni09!

Ich hätte es zwar parat gehabt, war aber gerade nicht parat ...
Wenn es das Verzeichnis schon gibt, dann wird nix kopiert (logisch).
Aber das Script läuft normal weiter. Oder?
Ja.
Noch als Hinweis zu "MoveFolder": Das Verschieben auf ein anderes Laufwerk (nur falls Du's mal brauchen solltest) wird (nach meinen Erfahrungswerten) damit nicht klappen ...

Grüße
bastla
Bitte warten ..
Mitglied: TsukiSan
10.02.2011 um 23:31 Uhr
Noch als Hinweis zu "MoveFolder": Das Verschieben auf ein anderes Laufwerk (nur falls Du's mal brauchen solltest) wird > (nach meinen Erfahrungswerten) damit nicht klappen ...
..dafür könnte man ja "MoveHere" benutzen.
nur falls es interessiert. bastla weiß soetwas sowieso

Gruss
Tsuki
Bitte warten ..
Mitglied: bastla
10.02.2011, aktualisiert 18.10.2012
Hallo Tsuki!

Schön, Dich wieder mal zu lesen ...
bastla weiß soetwas sowieso
Das ist jetzt aber einer Unterstellung (wahrscheinlich nur, weil ich die Tage mal ein "CopyHere" ausgegraben habe) ...

Danke jedenfalls für die Ergänzung.

Grüße
bastla
Bitte warten ..
Mitglied: reni09
11.02.2011 um 12:25 Uhr
Zitat von bastla:
Noch als Hinweis zu "MoveFolder": Das Verschieben auf ein anderes Laufwerk (nur falls Du's mal brauchen
solltest) wird (nach meinen Erfahrungswerten) damit nicht klappen ...

Der Hinweis ist mehr als gut, denn genau so etwas hab ich vor (von D:\ nach %USERPROFILE%)
Ok, so muss ich mir also dieses "MoveHere" anschaun oder aber meine Quellen auf C:\ legen.

Ähm ... wie ist's mit "objFSO.CopyFolder"? Kann man das von einem LW auf das andere LW anwenden?

Auf jeden Fall schonmal 1000Dank für die Tipps
Gruß reni
Bitte warten ..
Mitglied: bastla
11.02.2011 um 18:53 Uhr
Hallo reni09!
Ähm ... wie ist's mit "objFSO.CopyFolder"? Kann man das von einem LW auf das andere LW anwenden?
Magst Du das denn nicht selbst testen?
Das Verschieben würde jedenfalls etwa so aussehen:
01.
Set App = CreateObject("Shell.Application") 
02.
App.Namespace(strDstFld).MoveHere App.Namespace(strSrcFld).Items.Item
Wenn Du ".Item" weglässt, werden die nur die Ordnerinhalte unmittelbar in den Zielordner (muss bereits existieren) verschoben ...

Grüße
bastla
Bitte warten ..
Mitglied: reni09
11.02.2011 um 19:28 Uhr
Zitat von bastla:
Hallo reni09!
> Ähm ... wie ist's mit "objFSO.CopyFolder"? Kann man das von einem LW auf das andere LW anwenden?
Magst Du das denn nicht selbst testen?

Sorry ... da hast du natürlich recht! Werd ich tun!
Das muss dann bis nächsten MI warten, denn hier hab ich nur XP in einer VM und da gibts nur C:\

----
Das Verschieben würde jedenfalls etwa so aussehen:
01.
Set App = CreateObject("Shell.Application") 
02.
> App.Namespace(strDstFld).MoveHere App.Namespace(strSrcFld).Items.Item 
03.
> 
Wenn Du ".Item" weglässt, werden die nur die Ordnerinhalte unmittelbar in den Zielordner
(muss bereits existieren) verschoben ...

Das schaut ja gar nicht sooo schlimm aus *freu*
Auch das werde ich dann ab nächsten Mittwoch testen.

Vielen vielen Dank bastla!!
Und ich setz den Thread nun auch auf gelöst.

Schönes WE
Bitte warten ..
Mitglied: bastla
11.02.2011 um 19:33 Uhr
Hallo reni09!

Ich will Dich ja nicht um die Wochenendruhe bringen, aber
hier hab ich nur XP in einer VM und da gibts nur C:\
kann ich eigentlich nicht gelten lassen - VHD sind ja nicht so teuer , dass Du der VM nicht noch ein oder 2 Stück davon einbauen könntest ...

(Trotzdem ) auch Dir ein schönes WE
bastla
Bitte warten ..
Mitglied: reni09
11.02.2011 um 22:35 Uhr
Zitat von bastla:
kann ich eigentlich nicht gelten lassen - VHD sind ja nicht so teuer , dass Du der VM nicht noch ein oder 2 Stück davon
einbauen könntest ...

ja schon, aber Windows bekommt bei mir @HOME wirklich nur soviel Platz, wie es unbedingt sein muss.
Linux rocks *gg*
Aber ich setz mich Montag (im Urlaub ) noch mal dran.

Gruß reni
Bitte warten ..
Mitglied: reni09
16.02.2011 um 15:25 Uhr
Hallo und nochmals 1000Dank !!

Ich melde mich nur noch einmal, um meine Endlösung vorzustellen
01.
Option Explicit 
02.
Dim objFSO, objFolder, strSrcFld, strDstFld 
03.
 
04.
strSrcFld = "C:\temp\" & CreateObject("WScript.Shell").ExpandEnvironmentStrings("%USERNAME%") & "\ipos" 
05.
strDstFld = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%USERPROFILE%") & "\ipos" 
06.
 
07.
Set objFSO = CreateObject("Scripting.FileSystemObject") 
08.
 
09.
If Not objFSO.FolderExists(strDstFld) Then 
10.
   objFSO.MoveFolder strSrcFld, strDstFld 
11.
End If 
12.
 
13.
Set objFSO = Nothing
So tut es nun das, was ich will und im weiteren Verlauf des Scripts wird die eigentliche App gestartet.

Gruß reni
Bitte warten ..
Mitglied: bastla
16.02.2011 um 15:33 Uhr
Hallo reni09!

Freut mich, dass es jetzt passt ...

Grüße
bastla

P.S.: Da Du ohnehin schon ein paar längere Zeilen dabei hast, könntest Du 9 bis 11 noch zu
If Not objFSO.FolderExists(strDstFld) Then objFSO.MoveFolder strSrcFld, strDstFld
zusammenfassen ...
Bitte warten ..
Mitglied: reni09
16.02.2011 um 21:18 Uhr
Ahhh ... supi Tipp

Danke und Gruß
Bitte warten ..
Ähnliche Inhalte
Windows Tools

Batch Verzeichnis vergleichen, in einer anderes kopieren

Frage von cappu25Windows Tools11 Kommentare

Halloo an alle, ich habe jetzt schon verdammt lange rumprobiert und gegooglet aber ich bekomme keine Lösung hin. Folgendes: ...

Batch & Shell

Anhand des Filename in Verzeichnis kopieren

Frage von rudolfkBatch & Shell3 Kommentare

Ich ersuche um Hilfe! Komme aus der BI-Umgebung und habe mit der Batch-Programmierung leider keine Erfahrung. Jetzt sollte ich ...

Batch & Shell

Ordner von einem Verzeichnis in ein anderes Verzeichnis kopieren und Datei-Name verändern

gelöst Frage von gudboyBatch & Shell15 Kommentare

Ich habe ein "Verzeichnis A" mit Ordner. Die Ordner haben immer eine "F-Nummer" und einen Titel wie z.B. " ...

Batch & Shell

Batch zum Kopieren in aktuelles Verzeichnis

gelöst Frage von MasterSchlumpfBatch & Shell5 Kommentare

Hallo zusammen, ist es möglich eine Batch-Datei zu schreiben, welche ein Verzeichnis auf den USB Stick kopiert von dem ...

Neue Wissensbeiträge
Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 13 StundenHumor (lol)3 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 1 TagGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Sicherheit

Intel gibt neue Spectre V2-Microcode-Updates frei (20.02.2018)

Information von kgborn vor 1 TagSicherheit

Intel hat zum 20. Februar 2018 weitere Microcode-Updates für OEMs freigegeben, um Systeme mit neueren Prozessoren gegen die Spectre ...

Microsoft
ARD-Doku - Das Microsoft Dilemma
Tipp von Knorkator vor 1 TagMicrosoft3 Kommentare

Hallo zusammen, vor einigen Tagen lief in der ARD u.a. Reportage. Das Youtube Video dazu dürfte länger verfügbar sein. ...

Heiß diskutierte Inhalte
Server-Hardware
Welche Rolle spielt Design bei Enterprise IT Hardware?
Frage von ApolloXServer-Hardware16 Kommentare

Ich arbeite für einen internationalen Elektronikhersteller in der Forschung und meine Aufgabe ist es, Feedback von Nutzern in Hinsicht ...

Windows Netzwerk
WSUS4 und Windows 10 Updates automatisch installieren
Frage von sammy65Windows Netzwerk15 Kommentare

Hallo miteinander, ich habe mit einen neuen WSUS Server aufgesetzt Server 2016 darauf einen aktuellen WSUS. Grund, wir stellen ...

Switche und Hubs
Cisco SG350X-48 AdminIP in anderes VLAN
Frage von lcer00Switche und Hubs14 Kommentare

Hallo zusammen, ich habe ein Problem mir einem Cisco SG350X-48 bei der Erstinstallation wurde eine IP 192.168.0.254 (Default VLAN ...

Windows Netzwerk
Backup über WAN
Frage von petereWindows Netzwerk11 Kommentare

Hallo, ich muss aus einem entfernten WAN (synchrone 1Gbit) Daten sichern. Dabei handelt es sich sowohl um wenige große ...