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

Pfadangabe über Windowsdialog im VBS-Script

Frage Entwicklung VB for Applications

Mitglied: joni2000de

joni2000de (Level 1) - Jetzt verbinden

23.03.2010, aktualisiert 18.10.2012, 8276 Aufrufe, 10 Kommentare

Hallo Admins,

ich habe ein Script mit dem ich immer größere Dateimengen in unserer Ordnerstruktur zusortiere. Der Aufbau ist 1. Teil des Pfades\Objektnummer\2. Teil des Pfades. Die Objektnummer lese ich aus dem Dateinamen aus (ersten 4 Stellen). Ich hätte jetzt gerne eine Möglichkeit die Pfade der Quelle und der Ziele über eine sich öffnenden Dialog anzugeben (nicht Inputbox da ich da den genauen Pfad wissen muss).

Weiters kommt noch dazu, dass beim Zielpfad für den 2. Pfadteil, der 1. Pfadteil und die 4stellige Objektnummer noch abgezogen werden muss. Da sehe ich aber weniger das Problem.

Wie kann ich den Dialog zur Ordnerauswahl einfügen?

Danke für eure Hilfe.

Gruß Joni

Hier noch der Code

01.
quelle = "C:\Kalkulation\"			'Pfad inkl. \ 
02.
ziel = "E:\Objekte\"				'Pfad inkl. \ 
03.
zielpfad = "\12_Abrechnung\"			'Pfadteil nach der Objektnummer - Beginn und Ende mit \						 
04.
 
05.
DD = Date 
06.
dt = Year(DD) & "-" & Right("0" & Month(DD), 2) & "-" & Right("0" & Day(DD), 2) 
07.
 
08.
ZZ = Time 
09.
zt = Left(ZZ, 2) & "-" & Mid(ZZ, 4, 2) & "-" & Right(ZZ, 2) 
10.
 
11.
logdat = "e:\log_" & dt & "_" & zt & ".txt" 
12.
 
13.
'msgbox(logdat) 
14.
 
15.
on error resume next 
16.
set fs = CreateObject("Scripting.FileSystemObject") 
17.
set f = fs.GetFolder(quelle) 
18.
Set lf = fs.CreateTextFile(logdat, True) 
19.
 
20.
For Each file in f.Files 
21.
 
22.
	fn = file.Name											'alten Namen speichern 
23.
	ONR = left(alt, 4)										'Objektnummer am Anfang des Dateinamens auslesen 
24.
 
25.
	if fs.FolderExists(ziel & ONR & zielpfad) then							'Zielverzeichnis muss vorhanden sein 
26.
		if quelle <> ziel & ONR & zielpfad then							'Zielverzeichnis darf nicht gleich Quelle sein 
27.
			file.move (ziel & ONR & zielpfad)						'ins Zielverzeichnis verschieben 
28.
			lf.WriteLine(quelle & alt & " >>> " & ziel & ONR & zielpfad & fn)		'Wenn der Ordner existiert wurde die Datei verschoben + protokolliert 
29.
 
30.
		end if 
31.
 
32.
	end if 
33.
 
34.
Next 
35.
 
36.
lf.Close												'Logdatei schließen
Mitglied: TsukiSan
23.03.2010, aktualisiert 18.10.2012
Hallo joni2000de,

mit dem Fenster zur Ordnerauswahl hatten wir hier schon einmal etwas.

Gruss
Tsuki
Bitte warten ..
Mitglied: joni2000de
24.03.2010 um 09:57 Uhr
Hi Tuski,

das passt schon ganz gut. Was noch nicht ganz will ist das mit dem Voreinstellen des Startordners. Wenn ich den Code genau so übernehme wird immer "Eigene Dateien" als Startordner angezeigt. Ich habe da etwas probiert und krieg das nicht hin. Hast du mir vielleicht noch einen Tip wie die Pfadangabe für den Startordner zu erfolgen hat. Das mit dem Rootverzeichnis habe ich durchschaut, doch es änder sich da auch nichts, was für mich aber nicht problematisch ist.

Gruß Joni
Bitte warten ..
Mitglied: TsukiSan
24.03.2010 um 12:39 Uhr
Hallo joni2000de,

als Startordner kannst du einfach den Pfad angeben. In dem obigen Link und davon bastlas Script
schreibst du einfach:
01.
StartOrdner = "C:\"
anstelle der "17"
StartOrdner = "17"
Dann öffnet er da, wo du möchtest.

Gruss
Tsuki
Bitte warten ..
Mitglied: bastla
24.03.2010 um 15:43 Uhr
... und wenn wir schon bei meinen "Jugendsünden" sind - für den Fall, dass der Auswahldialog abgebrochen wird, sollte auch noch vorgesorgt werden - daher etwa so:
01.
AuswahlTitel = "Bitte Ordner auswählen" 
02.
StartOrdner = "C:\" 
03.
Set Auswahl = CreateObject("Shell.Application").BrowseForFolder(0,AuswahlTitel,16,StartOrdner) 
04.
If TypeName(Auswahl) = "Nothing" Then 
05.
    MsgBox "Abbruch gewählt!" 
06.
    WScript.Quit 
07.
Else 
08.
    Set Ordner = Auswahl.Self 
09.
    WScript.Echo Ordner.Path 
10.
End If
Grüße
bastla
Bitte warten ..
Mitglied: joni2000de
24.03.2010 um 17:42 Uhr
OK so weit so gut. Ich bin wieder etwas weiter, doch ganz habe ich den Syntax noch nicht durchschaut.

Kann mir hier nochmal jemand auf die Sprünge helfen.
BrowseForFolder(0,AuswahlTitel,16,StartOrdner)
0 steht für ??
AuswahlTitel ist klar
16 steht für ?? => müsste doch der Startordner sein => Zahlen werden akzeptiert Pfadangaben nicht, aber es ändert sich nichts
StartOrdner ist doch der rootordner ?? => alles was darunter liegt wird nicht angezeigt, was darüber liegt schon => das wird auch übernommen

Ich hätte gerne, dass zB in C:\temp gestartet wird aber in der Auswahl der ganze Baum des Arbeitsplatzes (oder zB ab C:\) zur Verfügung steht, so dass ich ggfl. mich auch im Baum nach unten bewegen kann.

Gruß Joni
Bitte warten ..
Mitglied: bastla
24.03.2010, aktualisiert 18.10.2012
Hallo joni2000!

Ich nehme mal an, Du lebst in China - da ist es vermutlich gerade etwas schwieriger, (über Google) an Infos zu kommen; deshalb zwei Direkt-Links:
Shell.BrowseForFolder Method
Using the Browse For Folder Dialog Box

Damit sollte sich der Wert 16 (oder &H10) ebenso klären lassen wie die Tatsache, dass StartOrdner tatsächlich für "Root" steht ...
... so dass ich ggfl. mich auch im Baum nach unten bewegen kann.
Alternativen (zT BS-abhängig) findest Du noch in VBS - Datei auswählen ...

Grüße
bastla
Bitte warten ..
Mitglied: joni2000de
25.03.2010 um 09:59 Uhr
Hi bastla,

China wäre vermutlich schon mal eine Reise wert. Mal sehen wer da den längeren Atem hat Google oder die Chinesen.

Ich war schon fleißig am lesen. Aber es hat anscheinend noch nicht gereicht
Dank deiner Links ist mir der Rest auch klar.

Was ich aber immer noch nicht gefunden habe ist eine Lösung mit der ich den Startordner vorgeben kann (frei definiert) und root auf Arbeitsplatz belassen. Das scheint nur sehr aufwändig umzusetzen zu sein.
Ich werde die Ordner ohne Vorgabe auswählen.

Nochmal danke für deine Unterstützung.

Gruß Joni
Bitte warten ..
Mitglied: TsukiSan
25.03.2010 um 13:52 Uhr
Hallo joni2000de,

gut, dass du deinen Script fertig hast.

Nur mal so am Rande:
Mal sehen wer da den längeren Atem hat Google oder die Chinesen.

Die Chinesen "atmen" schon länger chinesiche Luft, als Google Mitglieder hat

Gruss
Tsuki
Bitte warten ..
Mitglied: Biber
25.03.2010 um 14:11 Uhr
[OT]
Moin Tsuki San,

Zitat von TsukiSan:
Die Chinesen "atmen" schon länger chinesiche Luft, als Google Mitglieder hat
Na ja...." schon länger "muss nicht positiv sein....
Es ging doch nicht um die Frage, wer den frischeren Atem hat, oder?

Oder wer mehr heiße Luft produziert?
Oder wo gerade mehr dicke Luft ist?

na, ich höre mal lieber auf, bevor mir die Luft ausgeht...

Grüße
Biber
[/OT]
Bitte warten ..
Mitglied: TsukiSan
25.03.2010 um 14:49 Uhr
Hallo Biber,

Botschaft ist angekommen.

Aber irgendwie konnt' ich's mir nicht verkneifen. Sorry!

Gruss
Tsuki
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Dateiendung Temporär umbenennen mit vbs (ohne Pfadangabe)
gelöst Frage von o0Julia0oBatch & Shell2 Kommentare

hallo :) ich kenne mich ein wenig mit Batch-Dateien aus, aber nicht mit VBS. Ich möchte aber mit VBS ...

VB for Applications
VBS Script kann Prgramm nicht starten
gelöst Frage von C.BoernerVB for Applications15 Kommentare

Hallo ihr Admins, Ich habe folgendes Scenarios ein Programm läuft im Hintergrund (Drivve-Image) das übergibt Werte an ein VBS ...

Batch & Shell
Hilfe Bei einem vbs Script
gelöst Frage von Hattori-HanzoBatch & Shell19 Kommentare

Hey Leute Könnt ihr mir bitte sagen was daran falsch ist? beschäftige mich erst seit kurzem mit vbs scripts. ...

JavaScript
VBS-Script wird nicht vollständig ausgeführt
Frage von HousefrauJavaScript3 Kommentare

Hallo zusammen, wir lassen über eine Gruppenrichtlinie einen Script ausführen, welcher die Drucker der einzelnen Parteien mappen soll. Leider ...

Neue Wissensbeiträge
Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 6 StundenApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 11 StundenWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 11 StundenWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 23 StundenInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Von rj11 auf rj45
Frage von jensgebkenLAN, WAN, Wireless19 Kommentare

Hallo Gemeinschaft, könnt ihr mir vielleicht bei der anfertigung eines Kabels helfen - habe ein rj 11 stecker und ...

Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

LAN, WAN, Wireless
Häufig Probleme beim Anmelden in WLAN
Frage von mabue88LAN, WAN, Wireless15 Kommentare

Hallo zusammen, in einem Netzwerk gibt es relativ häufig (1-2 mal pro Woche) Probleme mit der WLAN-Verbindung. Zunächst mal ...

Windows Server
Remotesteuerung der Sitzung (Kennung XX) fehlgeschlagen
gelöst Frage von Stefan91Windows Server14 Kommentare

Hallo Zusammen, seit kurzem bekomme ich oben genannte Fehlermeldung, wenn ich versuche eine Remotesitzung über den Taskmanager fernzusteuern (Rechtsklick ...