| |  | Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
|
Autor
|
Thema: Übergabe Ordnername mit Pathangabe innerhalb VBS (2261 mal gelesen)
|
alterHausmeister Mitglied Hausmeister
 
 Beiträge: 470 Registriert: 02.02.2009
|
erstellt am: 16. Aug. 2011 23:19 <-- editieren / zitieren --> Unities abgeben:         
Hallo an alle, ich habe hier ein VBS gefunden, mit welchem eine Liste von leeren Verzeichnissen angelegt werden kann. Dieses VBS funktioniert in der Form, dass der Aufruf über eine Batchdatei erfolgt, in der das zu durchsuchende Verzeichns (incl. Laufwerksbuchstabe) als Parameter an das VBS übergeben wird. Soweit so gut. Funktioniert super ... Nun möchte ich dieses kleine Script aber in ein größeres Script integrieren, ohne dazu bei der Ausführung erst eine Batch erzeugen zu müssen. Über Code: set wshell = CreateObject("Wscript.shell") Set Dateiauswahl = CreateObject("Shell.Application").BrowseForFolder(0,AuswahlTitel,16,StartOrdner) set Ordner = Dateiauswahl.Self
kann ja eine Ordnerwahl vorgenommen werden, aber darin ist nicht der gesamte Path mit Laufwerk enthalten. Über ordner.path kann ich den zwar in einer MSGBOX() ausgeben, aber nicht in das oben angegebene VBS übergeben. Ich suche also eine Lösung, um (aus oben verlinktem Script) Code: DeleteEmptyFolders(CreateObject("Scripting.FileSystemObject"). _ GetFolder(WScript.Arguments(0))) sub DeleteEmptyFolders(ordner)
durch eine Ordnerwahl zu ersetzen, die ohne den Zwischenschritt der Batchdatei zur Übergabe von zB. C:\Temp auskommt. Hat wer dazu eine Idee?
------------------ lg, der Hausmeister _______________________________________ 46 + 1 = ein Lächeln Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Patrick Weber Mitglied Konstruktionstechniker, Admin
  
 Beiträge: 659 Registriert: 20.11.2006 Win11 Pro 23H2 Core i7-12700, 32GB RAM, Quadro P620 Creo Elements/Direct 19.0 M030 ModelManager 19.0 License Server 19.0 F000 clisp,VB.net,VBA,AHK,Python
|
erstellt am: 17. Aug. 2011 07:48 <-- editieren / zitieren --> Unities abgeben:          Nur für alterHausmeister
Code: set wshell = CreateObject("Wscript.shell") Set Dateiauswahl = CreateObject("Shell.Application").BrowseForFolder(0,AuswahlTitel,16,StartOrdner) set Ordner = Dateiauswahl.Self DeleteEmptyFolders(CreateObject("Scripting.FileSystemObject").GetFolder(Ordner.path)) sub DeleteEmptyFolders(Ordner) For Each Unter In Ordner.SubFolders DeleteEmptyFolders(Unter) If (Unter.SubFolders.Count+Unter.Files.Count) = 0 Then CreateObject("Scripting.FileSystemObject").DeleteFolder(Unter) End If Next End sub
Na ja, leere Ordner würde ich eigentlich lassen, wo sie sind.  ------------------ Grüße aus Sachsen pw Karl Marx ist tot, Einstein ist tot, und mir ist auch schon ganz schlecht! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
alterHausmeister Mitglied Hausmeister
 
 Beiträge: 470 Registriert: 02.02.2009
|
erstellt am: 17. Aug. 2011 08:37 <-- editieren / zitieren --> Unities abgeben:         
Zitat: Original erstellt von Patrick Weber: Na ja, leere Ordner würde ich eigentlich lassen, wo sie sind.
... ich auch ... Aber Danke! - genau das habe ich gesucht. Erst mal die allseits beliebten Us umschaufeln ... Nun ja, durch diverse Automatismen haben wir Unmengen (ca. 3500) von leeren Verzeichnissen, da bei Beginn eines Projektes immer die gleiche Stuktur angelegt wird. Mir ist aber wohl bewußt, daß nicht alle gelöscht werden können. Mir ist auch bewußt, daß ich dadurch nicht merklich mehr Platz auf dem Server bekomme. Mir persönlich sind die leeren Verzeichnisse mehr oder weniger egal ... aber ich bin ja nur der Hausmeister.
------------------ lg, der Hausmeister _______________________________________ 46 + 1 = ein Lächeln Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |