Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Verzeichnisgrösse ermitteln und als Excel Datei speichern

Frage Entwicklung Batch & Shell

Mitglied: Powerwater

Powerwater (Level 1) - Jetzt verbinden

04.04.2008, aktualisiert 08.04.2008, 17583 Aufrufe, 12 Kommentare

Hallo,
Also mein Problem ist, dass ich eine batch oder Script Datei schreiben will wo mit ich aus Excel Tabelle verschiedene Links auslesen und Grösse ermitteln dann in Zelle neben speichern .

243512635dcf53a42444802623d4b5d3-excel - Klicke auf das Bild, um es zu vergrößern
3161b05738ba787da5db87de239fd948-te - Klicke auf das Bild, um es zu vergrößern
Vielen Dank fürs Antworten
Mitglied: 60730
04.04.2008 um 14:36 Uhr
Hi,

wie jetzt, du hast eine Excel Tabelle und willst aus einer Batch die Daten haben?

Schau mal nach diesem wunderschönen Teilchen Namens LOG PARSER.

http://www.microsoft.com/downloads/details.aspx?FamilyID=890cd06b-abf8- ...

http://www.kaczenski.de/category/publikationen/ct-magazin-fur-computert ...

Dank an Nils Kaczenski und CT
Bitte warten ..
Mitglied: wakko
04.04.2008 um 15:02 Uhr
Hi,

ich denke, du meinst sowas für VBA:
01.
Function fileSizeinMB(path$) 
02.
Dim fs 
03.
Set fs = CreateObject("Scripting.FileSystemObject") 
04.
Dim dir, v 
05.
If fs.FolderExists(path) Then 
06.
   Set dir = fs.GetFolder(path) 
07.
   fileSizeinMB = dir.size / 1024 / 1024 
08.
End If 
09.
End Function
in ein Modul im vb-Editor einfügen (Excel-Mappe öffnen, alt+F11 drücken, im Projektbaum rechtsklick->Modul einfügen, Code in das Modul einfügen)
In b2 schreibst du dann
01.
=fileSizeinMB(A2)
, sollte dir die Ordnergröße rausschmeißen.

Hoffe die Antwort paßt zu deiner Frage...

Gruß,
Henrik
Bitte warten ..
Mitglied: Powerwater
04.04.2008 um 16:14 Uhr
Sory, ich war nicht deutlich,
Ich habe Aufgabe Speicherplatz zu ermitteln für verschiedene Abteilungen, Daten sind an mehreren Server verstreuet so habe ich für jede Abteilung eine Excel Tabelle mit dazugehörigen Verzeichnissen (Abteilung Ordner Struktur + Abteilungs-User Homes) aufgelistet. Jetzt mochte ich gerne diese Excel Tabelle mit einer Script oder vielleicht mit Makro verarbeiten so dass ich aktuell verbrauchten Speicherplatz bekomme.
Danke
Bitte warten ..
Mitglied: Powerwater
04.04.2008 um 19:46 Uhr
Hallo Henrik,
Ja, nun dass es irgendwie nicht funktioniere, kann es daran liegen das es für Datei Grösse gedacht ist und nicht Verzeichnis Grösse.
DANKE
Bitte warten ..
Mitglied: bastla
04.04.2008 um 20:28 Uhr
Hallo Powerwater!

wakko's Script arbeitet bei mir einwandfrei, gibt allerdings die Größe des Ordners (der Freigabe) samt aller Unterordner an ...

Falls Du nur die Dateien des angegeben Ordners berücksichtigen wolltest, müsste die Funktion etwa so aussehen:
01.
Function TotalFileSizesInMB(path) 
02.
Dim fs 
03.
Set fs = CreateObject("Scripting.FileSystemObject") 
04.
Dim dir, File, Total 
05.
If fs.FolderExists(path) Then 
06.
   Set dir = fs.GetFolder(path) 
07.
   For Each File In dir.Files 
08.
        Total = Total + File.Size 
09.
   Next 
10.
   TotalFileSizesInMB = Total / 1024 / 1024 
11.
End If 
12.
End Function
Zu verwenden ist auch diese Variante auf die gleiche Weise: in ein Modul der Arbeitsmappe kopieren und in der Tabelle aufrufen mit
01.
=TotalFileSizesInMB(A2)
Das könnte dann allerdings etwas dauern, da die Größe jeder Datei einzeln ermittelt werden muss ...

Grüße
bastla
Bitte warten ..
Mitglied: Powerwater
04.04.2008 um 20:43 Uhr
Hallo bastla,
Ich mache etwas falsch, kannst Du bitte Excel File als Antwort anhangen.
DANKE
Bitte warten ..
Mitglied: bastla
04.04.2008 um 21:00 Uhr
Hallo Powerwater!

Um die beiden Funktionen verwenden zu können, musst Du zunächst einmal über "Extras / Makro / Sicherheit" mit der Einstellung der Sicherheitsstufe "Mittel" das Ausführen von Makros erlauben. Nach einer Änderung dieser Einstellung Excel (nicht nur die Arbeitsmappe) schließen und neu starten.

Wenn Du nun Deine Mappe mit der Liste der Freigaben öffnest, kannst Du durch einen Rechtsklick auf das Blattregister ("Tabelle1" oder wie das Blatt auch heißt) und die Auswahl "Code anzeigen" den VBA-Editor starten.

Jetzt im Menü "Einfügen" den Punkt "Modul" auswählen. In das nun erscheinende große Fenster den geposteten Code der Funktion(en) einfügen.

Danach kannst Du zur Excel-Arbeitsmappe zurückkehren (Taskleiste oder erstes Symbol in der Symbolleiste bzw einfach VBA-Editor schließen) und die Funktion wie oben dargestellt in einer Zelle aufrufen.

Grüße
bastla
Bitte warten ..
Mitglied: Powerwater
05.04.2008 um 19:43 Uhr
Hallo
Es, funktioniert nur teilweise, nämlich makro zählt nur Daten die in dem Verzeichnis sind, alle unterverzeichnise zählt es nicht. wie kann ich es anpassen?
DANKE
Bitte warten ..
Mitglied: bastla
05.04.2008 um 20:24 Uhr
Hallo Powerwater!

Du kannst wakko's Version in das selbe Modul kopieren und einfach in der Tabelle die Formel
01.
=fileSizeinMB(A2)
verwenden, um das gewünschte Ergebnis zu erhalten.

Grüße
bastla
Bitte warten ..
Mitglied: Powerwater
05.04.2008 um 21:32 Uhr
Hallo bastla ,
Vielen Dank es funktioniert, habe allerdings noch ein Problem.
da ich sehr viele und sehr grosse verzeichnise habe dauert ewig bis die Tabelle bereit steht, fürs erstes mal ist es OK, danach möchte ich zusammen gestellte Daten schnell abrufen können. Gibt vielleicht eine Möglichkeit ein Button einzubauen der dann Aktion auslöst.
3161b05738ba787da5db87de239fd948-te - Klicke auf das Bild, um es zu vergrößern
Ihr seit besten Vielen dank
Powerwater
Bitte warten ..
Mitglied: bastla
07.04.2008 um 15:25 Uhr
Hallo Powerwater!

Eine relativ einfache Möglichkeit, die Berechnung nur bei Bedarf auszuführen, sähe so aus:

Füge in dem für die Functions verwendeten Modul noch folgendes Sub ein:
01.
Sub FileSize() 
02.
Dim Zelle  
03.
For Each Zelle In Selection.Cells 
04.
    Cells(Zelle.Row, "B").Value = fileSizeinMB(Cells(Zelle.Row, "A").Value) 
05.
Next 
06.
End Sub
Lösche in der Tabelle alle Formeln mit dem Aufruf der Funktion, also etwa "=fileSizeinMB(A2)"; wenn Du die derzeitigen Werte behalten möchtest, kannst Du auch einfach die gesamte Spalte markieren, diese kopieren und danach "Bearbeiten / Inhalte einfügen... / Werte" wählen.

Platziere in der Tabelle eine Schaltfläche (aus der Symbolleiste "Formular"), eine AutoForm oder ein Clipart und weise dieser/diesem per Rechtsklick das Makro "FileSize" zu.

Markiere nun für jede Zeile, in der eine Neuberechnung erfolgen soll, eine Zelle (Spalte egal, es wird aus der Markierung nur die Zeile ermittelt) und starte das Makro durch Klick auf Deine Schaltfläche.

Es wird nun für jede Zeile auf Basis des in Spalte A angegebenen Pfades der Platzbedarf neu ermittelt und in Spalte B dieser Zeile eingetragen, wobei der vorherige Wert überschrieben wird.

Die Beschreibung dieser Vorgangsweise bezieht sich zwar auf Excel 2003, sollte aber auch in anderen Versionen nachvollziehbar sein.

Grüße
bastla
Bitte warten ..
Mitglied: Powerwater
08.04.2008 um 14:36 Uhr
Es Funktioniert, Vielen Dank an Alle!
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Informationsdienste
Excel Datei ohne Download zur Verfügung stellen (4)

Frage von gnaulimon zum Thema Informationsdienste ...

Batch & Shell
gelöst Einzelne Zeilen in txt Datei speichern und auslesen (7)

Frage von noah1400 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...