Join fachinformatiker.de Forum Now
Ergebnis 1 bis 14 von 14

Speicherfresser finden

Diskussion über Speicherfresser finden in Anwendungssoftware der Kategorie Fachliches; Hi! Ich habe ein Problem. Ich bin ein absoluter Neuling mit Batch-Dateien und MS-DOS-Befehlen. Ich hab zum 1.9. eine Ausbildung ...

  1. #1
    Reg.-Benutzer Avatar von Huwy
    Reg.-Datum
    18.09.2008
    Beiträge
    143

    Standard Speicherfresser finden

    Hi!
    Ich habe ein Problem. Ich bin ein absoluter Neuling mit Batch-Dateien und MS-DOS-Befehlen.
    Ich hab zum 1.9. eine Ausbildung als Fachinformatiker begonnen und hab von meinem Ausbilder eine Aufgabe (die ich allein durch Selbststudium mit 0 Vorkenntnissen erledigen soll =( ) bekommen. Ich soll eine Batch-Datei schreiben, die die Speicherfresser eines Netzwerklaufwerkes findent.
    Im Detail soll das so aussehen, dass diese Datei ein Textdokument auswirft, dass alle Dateien dieses Laufwerkes nach Größe sortiert anzeigt.
    Nun habe ich mich schon 2 Tage damit beschäftigt und ich komme auf keinen grünen Zweig.
    Ich hab mit (wenn ich es jetz auswendig richtig hinbekomme) "dir /s/a-d/o-s" alle Dateien nach Speichergröße sortiert. Allerdings nur in den Verzeichnissen. Mein Ausbilder will allerdings, dass alle Dateien nach Größe sortiert in einer Liste auftauchen - trotzdem aber mit Pfadangabe. Wenn ich jetz aber einen Filter anwende und nur noch alle Dateien angezeigt bekomme, kann ich die trotzdem nicht nach Größe ordnen (zb find /v "Verzeichnis" - dann werden schon mal alle Zeilen mit Verzeichnis gelöscht usw). Mal abgesehen davon, dass mir der Pfad auch nicht mehr angezeigt wird.
    Das größte Problem ist nun, dass mein Ausbilder krank geschrieben ist für 2 Wochen und ich danach eigtl schon Ergebnisse liefern wollte. Ich hab meinen Azubi-Kollegen gefragt, allerdings lernt er IT-Kaufmann und kennt sich mit Batch-Dateien und DOS nicht wirklich gut aus - nach eigener Aussage.
    Ich hoffe ich bekomme einen kleinen Anstoß durch euch - weil ich hier echt am Verzweifeln bin.

    Gruß
    Thomas


  2. #2
    Reg.-Benutzer Avatar von lupo49
    Reg.-Datum
    27.03.2007
    Ort
    Sauerland
    Beiträge
    2.951

    Standard

    Mal auf die Schnelle erstellt:

    Code:
    FOR /F "tokens=1,2,3,4,5 delims= " %i IN ('dir /S /A-D /O-S') do echo %k %l >> c:\foo.txt
    Vielleicht ist das ein Ansatz der dich weiterbringt.

  3. #3
    Reg.-Benutzer Avatar von Huwy
    Reg.-Datum
    18.09.2008
    Beiträge
    143

    Standard

    Sowas in die Richtung habe ich auch schon ausprobiert ... aber das is ja die gleiche Auflistung, wie ich mit "dir" bekomme.
    Die Dateien sollen ja unabhängig von den Verzeichnissen nach Größe geordnet werden ....

  4. #4
    Moderator Linux + Unix
    Rootserver - Vserver - Webspace
    Avatar von Amstelchen
    Reg.-Datum
    08.03.2005
    Ort
    127.0.0.1
    Beiträge
    3.948

    Standard

    ich würde das bevorzugt mittels VBS/WSH machen - vielleicht hast du ja die möglichkeit, anstelle von reinem BAT/CMD.
    dateien aller verzeichnisse auslesen, gesamtliste erstellen, nach grösse sortieren.

    s'Amstel
    Help stamp out and abolish redundancy!
    Help stamp out and abolish redundancy!

  5. #5
    Reg.-Benutzer Avatar von Huwy
    Reg.-Datum
    18.09.2008
    Beiträge
    143

    Standard

    Das habe ich mir auch schon gedacht.
    Aber ich hab eben keine Möglichkeut zu erfragen, ob das auch möglich ist. Denn er hat es so ausgedrückt, dass es eine Möglichkeit wäre, mich in Batch-Dateien und MS-DOS Befehle reinzuarbeiten.
    Naja ich danke euch für eure Hilfe =)

  6. #6
    Reg.-Benutzer
    Reg.-Datum
    23.08.2007
    Ort
    Bay Wald
    Beiträge
    51

    Standard

    DOS-Befehle
    Sinnlose Liste gelöscht.
    Habe DOS noch als Büroinformationselektroniker erlernt, den Beruf gibts nimmer genauso wie DOS.
    Aber wennst fragen hast send mir PN
    Geändert von Chief Wiggum (18.09.2008 um 22:57 Uhr)

  7. #7
    Administrator + Moderator
    Anwendungssoftware, Novell/sonst.OS
    Hardware, Mobile Devices
    Avatar von Chief Wiggum
    Reg.-Datum
    12.02.2001
    Ort
    Essen, NRW
    Beiträge
    19.813

    Standard

    Zitat Zitat von robby_46 Beitrag anzeigen
    DOS-Befehle
    Kannst du bitte mal erklären, was diese sinnlose Auflistung von allgemeinen DOS Befehlen soll? Hörst du dich nur gerne reden?

    Entweder trägst du was vernünftiges zum Thema bei oder lässt es sein!

  8. #8
    Reg.-Benutzer Avatar von lupo49
    Reg.-Datum
    27.03.2007
    Ort
    Sauerland
    Beiträge
    2.951

    Standard

    Ich habe nochmal weiter probiert:

    Code:
    cd E:\Openstreetmap\
    dir /S /B /A:D >> E:\directories.txt
    FOR /F "tokens=1 delims= " %%i IN (E:\directories.txt) DO dir /A-D /-C /O:-S %%i | find /V "Volume" | find /V "Verzeichnis von" | find /V "Datei(en)" | find /V "Verzeichnis(se)" >> E:\files.txt
    FOR /F "tokens=1,2,3,4 delims= " %%i in (E:\files.txt) do echo %%k %%l >> E:\files1.txt
    type E:\files1.txt
    del E:\directories.txt E:\files.txt
    Das gibt dir jetzt ne Liste aller Dateien aus in Form von
    Code:
    <Dateigroeße>  <Dateiname.foo>
    Leider habe ich keine Ahnung wie ich die Liste noch sortieren kann.
    Mit "sort" gehts, soweit wie ich getestet habe, nicht.

    So ne Aufgabe mit klassischen Batchbefehlen zu bewältigen ist (fast) ein Ding der Unmöglichkeit. Besorg dir die Unixtools für Windows und mach es damit.

    Code:
    find . -type f | xargs du | sort -n

  9. #9
    Reg.-Benutzer Avatar von Huwy
    Reg.-Datum
    18.09.2008
    Beiträge
    143

    Standard

    Ich danke dir !!

    Aber die Aufgabe habe ich mir nicht ausgedacht

    Naja ich werde mich mit meinem Ausbilder unterhalten =)

  10. #10
    Reg.-Benutzer Avatar von Huwy
    Reg.-Datum
    18.09.2008
    Beiträge
    143

    Standard

    Edit: Mit einem zusätzlichen Befehl habe ich nun ein kleines Erfolgserlebnis =)

    Y:\>dir /s/a-d/o-s | find /v "Verzeichnis" | find /v "Datei" | find /v "Volume"
    | find /v "Datenträger" | cut -b 20-75 | sort /r >test.txt

    Das cut schneidet alles bis zur 20.Spalte ab .. das ist ca. nach der Uhrzeit =)
    Dadurch kann ich nach Größe sortieren ... allerdings bleibt immer noch das Problem, dass ich kein Verzeichnis angezeigt bekomme und bei einer etwas größeren Dateimenge die Zuordnung Probleme bereitet =(


    Ist echt schrecklich, sich das alles im Selbststudium beizubringen

  11. #11
    Reg.-Benutzer Avatar von Huwy
    Reg.-Datum
    18.09.2008
    Beiträge
    143

    Standard Liste nach Ende einer Zeile sortieren

    Hallo!
    Ich bin ein absoluter Neuling mit cmd =)
    Habe mir ein paar Unixtools geholt und mir einen Befehl zusammengebaut, der mir alle Verzeichnisse mit Größe ausgibt.
    Die Liste sieht ungefähr so aus:

    ...
    Y:\Aufgaben\Script5Datei(en)274.559Bytes
    Y:\Aufgaben\Script\batchtut\Batchtut2Datei(en)6.16 1Bytes
    Y:\Aufgaben\Script\batchtut\Batchtut\Reto2Datei(en )117.258Bytes
    Y:\Aufgaben\Script\batchtut\Batchtut\PRECHT9Datei( en)14.251Bytes
    Y:\Aufgaben\Script\batchtut\Batchtut\PITTIPLA3Date i(en)28.453Bytes
    Y:\Aufgaben\Script\batchtut\Batchtut\Lenz3Datei(en )25.588Bytes
    Y:\Aufgaben\Script\batchtut\Batchtut\Infotec3Datei (en)38.899Bytes
    Y:\Aufgaben\Script\batchtut\Batchtut\Beispiel1Date i(en)80.997Bytes
    Y:\Aufgaben\Script\batchtut\Batchtut\Battips5Datei (en)128.137Bytes
    Y:\Aufgaben\Script\batchtut\Batchtut\Bat-Kurs1Datei(en)94.894Bytes
    Y:\Aufgaben\Script\Fortschritte1Datei(en)233Bytes
    Y:\Aufgaben\Patchkabelbestellung1Datei(en)117.248B ytes
    Y:\Aufgaben\PTNetzwerk2Datei(en)30.595Bytes
    Y:\Aufgaben\DOT2Datei(en)2.052.096Bytes
    Y:\Aufgaben\WLan-šberprfung2Datei(en)38.939Bytes
    ...

    Ich möchte jetz die Verzeichnisse nach Größe sortieren. Allerdings habe ich keine Ahnung, mit welchem Befehl ich nach der Größe am Ende der Zeile sortiere (das größte Verzeichnis zuerst).
    Ich kenn nur "sort /r" aber der nimmt sich ja immer den Anfang der Zeile vor. Kann man diesen Befehl irgendwie mit anderen verbinden, sodass er nach der Größe sortiert oder braucht man einen anderen Befehl.

    Btw - das ist mein Befehl. Ich weiß, dass die 3 sed auch nicht sehr elegant sind ^^
    Y:\>dir /s/o-s/a-d | cat | sed '$d' | sed '$d' | sed '$d' | egrep -e "Datei\(en\)|Verzeichnis" | tr -d '\r\n' | tr -d " " | sed 's/Verzeichnisvon/\r\n/g' >VsGröße.txt

  12. #12
    Administrator + Moderator
    Anwendungssoftware, Novell/sonst.OS
    Hardware, Mobile Devices
    Avatar von Chief Wiggum
    Reg.-Datum
    12.02.2001
    Ort
    Essen, NRW
    Beiträge
    19.813

    Standard

    Ein Thema, ein Thread!
    Ich habe das mal zusammengeführt.
    Des kannschd ned mache, woil des gehd echt ned.

  13. #13
    Reg.-Benutzer Avatar von Huwy
    Reg.-Datum
    18.09.2008
    Beiträge
    143

    Standard

    Oh tut mir Leid !!
    Aber danke, dass du den Thread nicht gelöscht, sondern verschoben hast =)

    So und wieder back 2 topic ...

    Ich hab mich nun mal durch die Abteilung gefragt ... scheint ein sehr schwieriges Thema (zumindest unter Windows) zu sein.
    Ich bin nun selbst auf die Lösung dieses eines Problems gekommen. Jeder hat mir so ein Stück weit weiter helfen können
    Mit "sed 's/Datei(en)/ /g' " hab ich mir mal ein Leerzeichen zwischen das Verzeichnis und die Größe eingefügt. Jetz konnte ich mit "awk {print $2, $1}" die Spaltenreihenfolge verändern. An sich schon mal top ... allerdings tut sich gleich wieder das nächste Problem auf, zu dem jetz so spontan keiner eine Lösung wusste, obwohl es sicher nicht so schwer ist.

    ...
    25.588Bytes Y:\Aufgaben\Script\batchtut\Batchtut\Lenz3
    38.899Bytes Y:\Aufgaben\Script\batchtut\Batchtut\Infotec3
    80.997Bytes Y:\Aufgaben\Script\batchtut\Batchtut\Beispiel1
    128.137Bytes Y:\Aufgaben\Script\batchtut\Batchtut\Battips5
    94.894Bytes Y:\Aufgaben\Script\batchtut\Batchtut\Bat-Kurs1
    233Bytes Y:\Aufgaben\Script\Fortschritte1
    117.248Bytes Y:\Aufgaben\Patchkabelbestellung1
    ...

    Mit sort sieht er sich immer nur die erste Ziffer und nicht die komplette Zahl an. Gibt es eine Möglichkeit, dass mit einem Sortierbefehl die ganze Zahl angesehen wird?

    Tut mir Leid, dass ich immer so schnell poste, aber ich will mit dem Thema endlich mal weiterkommen =(

  14. #14
    Reg.-Benutzer Avatar von Huwy
    Reg.-Datum
    18.09.2008
    Beiträge
    143

    Standard

    Falls es noch jemand interessiert.
    Ich habe nun entgueltig eine Batchdatei, die die Speicherfresser eines Datentraegers in einer Excelliste ausspuckt.
    Man benötigt dazu aber die Unixtools, falls es jemand testen will =)

    Code:
    @ECHO off
    set /p vstart="Bitte Datentraeger eingeben (zB C:\) "
    del %vstart%Endfile.xls
    dir %vstart% /s/a-d/b >%vstart%Dateiverzeichnisse.txt
    dir %vstart% /s/a-d | grep " " | sed '$d' | sed '$d' | sed '$d' | find /v "Volumeträger" | find /v "Volumeseriennummer" | find /v "Datenträger in Laufwerk %vstart%" | find /v "Verzeichnis von" | find /v "Datei(en)" | cut -b 18-36 >%vstart%DGroesse1.txt
    type %vstart%DGroesse1.txt | sed '1d' >%vstart%DGroesse.txt
    paste %vstart%DGroesse.txt %vstart%Dateiverzeichnisse.txt >%vstart%Endfile1.txt
    type %vstart%Endfile1.txt | sort /r >%vstart%Endfile.txt
    copy %vstart%Endfile.txt %vstart%Endfile.xls
    del %vstart%Dateiverzeichnisse.txt
    del %vstart%DGroesse1.txt
    del %vstart%DGroesse.txt
    del %vstart%Endfile1.txt
    del %vstart%Endfile.txt
    %vstart%Endfile.xls

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. Speicherfresser
    Von etreu im Forum Java
    Antworten: 7
    Letzter Beitrag: 10.07.2003, 13:49