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

Frage Entwicklung VB for Applications

Mitglied: reni09

reni09 (Level 1) - Jetzt verbinden

09.02.2011, aktualisiert 18.10.2012, 4364 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
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
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
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
MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 5 StundenMikroTik RouterOS4 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 6 StundenSicherheit

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Administrator.de Feedback

Entwicklertagebuch: Die Startseite wurde überarbeitet

Information von admtech vor 8 StundenAdministrator.de Feedback9 Kommentare

Hallo Administrator User, mit dem Release 5.7 haben wir unsere Startseite überarbeitet und die Beiträge und Fragen voneinander getrennt. ...

Vmware

VMware Desktopprodukte sind verwundbar

Information von Penny.Cilin vor 13 StundenVmware

Die VMware-Anwendungen zum Umgang mit virtuellen Maschinen Fusion, Horizon Client und Workstation sowie die Plattform NSX sind verwundbar. Davon ...

Heiß diskutierte Inhalte
Visual Studio
Vb.net-Tool zum Erzeugen einer Outlook-E-Mail
Frage von ahstaxVisual Studio24 Kommentare

Hallo, ich möchte gerne ein vb.net-Tool schreiben, das am Ende eine Outlook-E-Mail erzeugt. Grundsätzlich ist mir klar, wie das ...

Windows Server
RDP macht Server schneller???
Frage von JaniDJWindows Server16 Kommentare

Hallo Community, wir betrieben seit geraumer Zeit diverse virtuelle Maschinen und Server mit Windows Server 2012. Leider haben wir ...

Windows Netzwerk
Netzwerk Neustrukturierung
Frage von IT-DreamerWindows Netzwerk16 Kommentare

Hallo verehrte Community und Admins, bei uns im Haus steht eine Neustrukturierung an. Dafür benötige ich von euch ein ...

Windows 10
Windows 10 dunkler Bildschirm nach Umfallen
Frage von AkcentWindows 1015 Kommentare

Hallo, habe hier einen Windows 10 Rechner der von einem User umgefallen wurde (Beine übers Knie, an den PC ...