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
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 ...
- 18.09.2008, 07:39 #1
Speicherfresser finden
- 18.09.2008, 10:18 #2
Mal auf die Schnelle erstellt:
Vielleicht ist das ein Ansatz der dich weiterbringt.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
- 18.09.2008, 14:47 #3
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 ....
- 18.09.2008, 14:59 #4
Moderator Linux + Unix
Rootserver - Vserver - Webspace
- Reg.-Datum
- 08.03.2005
- Ort
- 127.0.0.1
- Beiträge
- 3.948
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'AmstelHelp stamp out and abolish redundancy!
Help stamp out and abolish redundancy!
- 18.09.2008, 16:42 #5
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 =)
- 18.09.2008, 22:36 #6Reg.-Benutzer
- Reg.-Datum
- 23.08.2007
- Ort
- Bay Wald
- Beiträge
- 51
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 PNGeändert von Chief Wiggum (18.09.2008 um 22:57 Uhr)
- 18.09.2008, 22:59 #7
- 19.09.2008, 19:49 #8
Ich habe nochmal weiter probiert:
Das gibt dir jetzt ne Liste aller Dateien aus in Form vonCode: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
Leider habe ich keine Ahnung wie ich die Liste noch sortieren kann.Code:<Dateigroeße> <Dateiname.foo>
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
Geändert von lupo49 (19.09.2008 um 20:02 Uhr)
- 22.09.2008, 10:52 #9
Ich danke dir !!
Aber die Aufgabe habe ich mir nicht ausgedacht
Naja ich werde mich mit meinem Ausbilder unterhalten =)
- 22.09.2008, 11:34 #10
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
- 30.09.2008, 10:00 #11
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-šberprfung2Datei(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
- 30.09.2008, 10:07 #12
Moderator
Anwendungssoftware, Novell/sonst.OS
Hardware, Mobile Devices
- Reg.-Datum
- 12.02.2001
- Ort
- Essen, NRW
- Beiträge
- 19.365
Ein Thema, ein Thread!
Ich habe das mal zusammengeführt.Du mecherst vorwärds
doch dei Karussell drehd si im Graas
Dei Zeicher schdenna di Zeidn renna
du du kennst di nimmer aus.
- 30.09.2008, 13:38 #13
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 =(
- 09.10.2008, 10:22 #14
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
-
Speicherfresser
Von etreu im Forum JavaAntworten: 7Letzter Beitrag: 10.07.2003, 13:49


LinkBack URL
About LinkBacks
Zitieren