Pfadangabe über Windowsdialog im VBS-Script
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
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
quelle = "C:\Kalkulation\" 'Pfad inkl. \
ziel = "E:\Objekte\" 'Pfad inkl. \
zielpfad = "\12_Abrechnung\" 'Pfadteil nach der Objektnummer - Beginn und Ende mit \
DD = Date
dt = Year(DD) & "-" & Right("0" & Month(DD), 2) & "-" & Right("0" & Day(DD), 2)
ZZ = Time
zt = Left(ZZ, 2) & "-" & Mid(ZZ, 4, 2) & "-" & Right(ZZ, 2)
logdat = "e:\log_" & dt & "_" & zt & ".txt"
'msgbox(logdat)
on error resume next
set fs = CreateObject("Scripting.FileSystemObject")
set f = fs.GetFolder(quelle)
Set lf = fs.CreateTextFile(logdat, True)
For Each file in f.Files
fn = file.Name 'alten Namen speichern
ONR = left(alt, 4) 'Objektnummer am Anfang des Dateinamens auslesen
if fs.FolderExists(ziel & ONR & zielpfad) then 'Zielverzeichnis muss vorhanden sein
if quelle <> ziel & ONR & zielpfad then 'Zielverzeichnis darf nicht gleich Quelle sein
file.move (ziel & ONR & zielpfad) 'ins Zielverzeichnis verschieben
lf.WriteLine(quelle & alt & " >>> " & ziel & ONR & zielpfad & fn) 'Wenn der Ordner existiert wurde die Datei verschoben + protokolliert
end if
end if
Next
lf.Close 'Logdatei schließen
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 138998
Url: https://administrator.de/contentid/138998
Ausgedruckt am: 22.11.2024 um 14:11 Uhr
10 Kommentare
Neuester Kommentar
... 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:
Grüße
bastla
AuswahlTitel = "Bitte Ordner auswählen"
StartOrdner = "C:\"
Set Auswahl = CreateObject("Shell.Application").BrowseForFolder(0,AuswahlTitel,16,StartOrdner)
If TypeName(Auswahl) = "Nothing" Then
MsgBox "Abbruch gewählt!"
WScript.Quit
Else
Set Ordner = Auswahl.Self
WScript.Echo Ordner.Path
End If
bastla
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 ...
Grüße
bastla
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
[OT]
Moin Tsuki San,
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]
Moin Tsuki San,
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]