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

Verschiedenste Dateien in einem Ordner auf ihre Größe prüfen, wenn größer x dann Meldung

Frage Entwicklung Batch & Shell

Mitglied: Nollosch

Nollosch (Level 1) - Jetzt verbinden

23.02.2012, aktualisiert 18.10.2012, 4559 Aufrufe, 11 Kommentare

Hallo Freunde der gepflegten Programmierung

Ich verbringe leider zuviel Zeit mit weniger hilfreichen Dingen, so dass ich kaum die Zeit habe, mir mit Scripten weiterzuhelfen.

Ich muss Ordner (Zugriff per Admin auf die Rechner besteht) mit verschiedenen Dateien (Meist sind es aber gleiche Dateitypen) auf ihre Größe prüfen.

Also reinschauen, absteigend nach Größe sortieren und wenn welche über 1GB dabei sind, einen weiteren Schritt einleiten. Höchstwahrscheinlich Mail an mich oder Notiz in LOG Datei um diese später zu checken.

Ich habe diesen Thread gefunden Alle Dateien in einem Ordner, die unter einer bestimmten Dateigröße liegen, löschen. Das sieht mir schon ganz nützlich aus, aber wie drehe ich den Spies um? Dann natürlich del in >.\log.log ändern und ich wäre glücklich. Oder ist das dafür untauglich?

Ich steh total auf dem Schlauch und weiß mir nicht zu helfen.


Grüße
Mitglied: 60730
23.02.2012 um 11:41 Uhr
Moin,

da hast du aber "leider" genau das falsche Script in den Händen...
Im Prinzip passt die Logik schon, jedoch ist das ein ganz unsauberes Beispiel.
Siehe mein damaliger Kommentar.

Wie sowas mal grob aussehen könnte, wenn es auch Dateien in Unterordnern betrifft....

for /r laufwerk\pfad %a in (*) do if %~za gtr 102400000 @echo %a

wobei laufwerk\pfad natürlich sinngemäß auf deinen Ordner zielen muß und das nur eine "Demo" für die Dosbox ist.
Die Zeile gibt dir so alle Dateinamen aus, die größer als 1GB sind.
Bitte warten ..
Mitglied: Skyemugen
23.02.2012 um 11:44 Uhr
Aloha,

nujoa, bissl Umbauen

01.
@echo off & setlocal 
02.
set "Pfad=E:\Downloads" 
03.
set "LOG=E:\datei.log" 
04.
set groesse=1024000000 
05.
for /r %Pfad% %%s in (*.typ *.abc *.xyz) do ( 
06.
	if %%~zs GTR %groesse% ( 
07.
		echo Folgende Datei wurde entfernt: %%s - Groesse: %%~zs>>%LOG% 
08.
		REM echo dient zum Testlauf / Anschauen 
09.
		echo del %%s 
10.
11.
12.
pause
zum Bleistift

greetz André
Bitte warten ..
Mitglied: Nollosch
23.02.2012 um 12:58 Uhr
Zitat von Skyemugen:

echo Folgende Datei wurde entfernt: %%s - Groesse: %%~zs>>%LOG%
REM echo dient zum Testlauf / Anschauen
echo del %%s
)
)
pause</code>

zum Bleistift

greetz André

Erstmal danke, mir werden tatsächlich Dateien die "größer sind als" angezeigt. Leider mit kompletten Pfad, aber das ist nicht soo tragisch.

Was hat das "del" beim Echo zu bedeuten?

Kann man die Größenangabe beim "echo in LOG" auch humanreadable gestalten?

@TimoBeil - als Einzeiler in der DOS Box werden mir if´s je Datei wiedergegeben und wenn größer der komplette Pfad zur Datei.
Eigentlich ganz nett, aber wie verarbeite ich das weiter? In einer .bat stürzt es mir ab trotz Pause am Ende
Bitte warten ..
Mitglied: 60730
23.02.2012 um 13:12 Uhr
Salve,

es gibt größeren einen Unterschied zwischen Andrés Adaption und meiner minimimik.

  • André hat eine Batch umgeschrieben - erkennbar an den doppelten Prozentzeichen, ich eine Demo für die Dosbox.
  • dann hat er den pauchalen echo off Hammer ausgepacktübernommen, den finde ich zum lernen und probieren suboptimal.
  • Dafür hat er dir gezeigt, wie du bestimmte Dateisuffixe durchorgeln kannst, ich nehme alles
  • Wenn du nur die Ergebnise sehen willst.. (das if wird silent gestartet)
for /r laufwerk\pfad %a in (*) do @if %~za gtr 102400000 @echo %a
  • Wenn du nur die Dateinamen samt suffixe sehen willst:
for /r laufwerk\pfad %a in (*) do @if %~za gtr 102400000 @echo %~nxa
  • Wenn du das in ein Log ausgeben willst
for /r laufwerk\pfad %a in (*) do @if %~za gtr 102400000 @echo %~nxa>>logfile.log

gebe einfach mal for /? in der Dosbox ein und scrolle einwenig dort ist das alles ganz gut beschrieben.

Gruß
Bitte warten ..
Mitglied: Skyemugen
23.02.2012 um 13:37 Uhr
Zitat von Nollosch:
Leider mit kompletten Pfad, aber das ist nicht soo tragisch.
%%s ==> %%~nxs
Was hat das "del" beim Echo zu bedeuten?
cmd auf ==> del /? ==> enter (du hast nicht angegeben, was du machen willst also blieb es als Beispiel drin)
Kann man die Größenangabe beim "echo in LOG" auch humanreadable gestalten?
Kann man, nach Vorgabe, sicherlich tun (wie schon oft geschehen)

greetz André
Bitte warten ..
Mitglied: Nollosch
23.02.2012 um 14:37 Uhr
Fein fein. Das funktioniert sehr gut, aber wie in einem Script verwenden?

Das mit for /? hatte ich schon vorher gemacht, aber irgendwie fehlt mir da eine Klasse Batch um den Faden zu finden. Ich lese mir alles durch, bin danach aber kein Stück schlauer.

Grüße
Bitte warten ..
Mitglied: Nollosch
23.02.2012 um 14:41 Uhr
Ich muss jetzt hier erstmal nen Break machen. Schaue mir das so bald wie möglich nochmal an. Muss es letztlich noch mit einigen Dingen kombinieren w.z.B. Zuordnung, Zeit Datum u.s.w.


Vielen Dank erstmal für die Hilfe ...

... und einen schönen Tag euch!
Bitte warten ..
Mitglied: Nollosch
24.02.2012 um 13:59 Uhr
Hallo zusammen!

Ich starte das Programm welches die evtl. zu großen Dateien erzeugt jetzt mit einer modifizierten Verknüpfung (C:\WINDOWS\system32\cmd.exe /c .bat Script & Programm.exe (minimiert)).

Im Script (von Skyemugen) hab ich am Ende eine .vbs Info Box für das ECHO eingefügt. Es popt also ein mit OK zu bestätigendes Fenster auf, wenn eine Datei größer ist als angegeben.

Leider noch mit kompletten Pfad.

Zitat: Skyemugen
Kommentar Skyemugen schreibt am 23.02.2012, 13:37:50 Uhr
Zitat von Nollosch:
Leider mit kompletten Pfad, aber das ist nicht soo tragisch.
%%s ==> %%~nxs


Wo gehört dieses %%s ==> %%~nxs hin das es funktioniert?

Wenn das noch raus käme, wäre die Lösung perfekt, da ohnehin die Anwender dafür verantwortlich sind und so eine saubere Lösung auf den Schirm bekämen.


Grüße
Bitte warten ..
Mitglied: Skyemugen
24.02.2012 um 14:12 Uhr
...

echo Folgende Datei wurde entfernt: %%~nxs - Groesse: %%~zs>>%LOG%

war das nicht eigentlich eindeutig, dass %%s im echo durch %%~nxs zu ersetzen ist?

P.S.: n = Dateiname | x = Dateiendung
Bitte warten ..
Mitglied: Nollosch
24.02.2012 um 14:39 Uhr
Ich liebe D*** ..... hätt ich beinahe gesagt.

Ich Idiot hatte es auch im for Befehl ausgetauscht und wunderte mich über Abstürze (Strg+H lässt grüßen).

Ist ne richtig feine Lösung geworden.


VIELEN VIELEN DANK
Bitte warten ..
Mitglied: 60730
24.02.2012, aktualisiert 18.10.2012
moin,

Das mit dem Idiotalfall hast du geschrieben, ich dir das da, das hätte man auch lesen können.

Ps: "Können" - können wir auch mit einem Porschmintfarbenen Haken an dem Fred rechnen?
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
gelöst EDI Dateien auf Inhalt prüfen und verschieben (6)

Frage von ThomasKern zum Thema Batch & Shell ...

Batch & Shell
gelöst Per Batch Dateien in einen Ordner - ext. Festplatte übertragen (2)

Frage von tocksick zum Thema Batch & Shell ...

Windows Server
gelöst Freigegebener Ordner "Eigene Dateien" (8)

Frage von JensDND zum Thema Windows Server ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (29)

Frage von patz223 zum Thema Windows Userverwaltung ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (20)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...