Top-Themen

Aktuelle Themen (A bis Z)

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

Batch-File Verzeichnis von Suche ausschließen

Frage Entwicklung Batch & Shell

Mitglied: freel0rd

freel0rd (Level 1) - Jetzt verbinden

28.08.2009, aktualisiert 11:02 Uhr, 6714 Aufrufe, 5 Kommentare

Hallo zusammen,
zunächst muss ich sagen, dass das hier wirklich eine super Plattform ist, die mir schon das ein oder andere Mal weitergeholfen hat!

Zu meinem Problem:

Ich habe ein Batch-Skript erstellt, welches auf einem Rechner alle Verzeichnisse mit Unterverzeichnissen bestimmten Dateien durchsucht. Durchsucht wird dabei die komplette Platte C:\, was auch so gewollt ist. Um die Performance zu erhöhen, würde ich aber gerne das komplette Verzeichnis C:\Windows von der Suche ausschließen.

Bevor ich in meine Suchschleife gehe, habe ich mit
01.
set dir=c:\
mein Suchverzeichnis definiert. Wie kann ich nun meine Suche dahingehend einschränken, dass C:\Windows davon ausgenommen wird? Leider konnte ich da nichts passendes finden.

Vielen Dank schonmal für Eure Hilfe!

Viele Grüße,
freel0rd
Mitglied: Biber
28.08.2009 um 11:17 Uhr
Moin freel0rd,

willkommen im Forum.
Zitat von freel0rd:
Ich habe ein Batch-Skript erstellt, welches auf einem Rechner alle Verzeichnisse mit Unterverzeichnissen bestimmten Dateien durchsucht.
Zeich doch ma!

Bevor ich in meine Suchschleife gehe, habe ich mit
01.
set dir=c:\
mein Suchverzeichnis definiert.
Aahhh - ist das diese Zeile 8, in der Suchschleife anfängt? *Glaskugel putz*

Menno - wir beantworten ja nun wirklich gerne Fragen zu Skripten.
Aber das geht doch besser, wenn wir wissen worum es geht.

Bitte poste das komplette Fragment.

Grüße
Biber
Bitte warten ..
Mitglied: freel0rd
28.08.2009 um 11:35 Uhr
Sorry, mein Fehler.
Hier der vollständige Code. Ist bisher nur im Teststadium, es ist noch eine Prüfung drin, ob das .pst-File mehr als 1 MB hat. Es geht mir wie gesagt nur darum, C:\Windows von der Suche auszunehmen, weil dadurch die Performance leidet.

01.
@echo off 
02.
 
03.
set dir=c:\ 
04.
set file=*.pst 
05.
set size=%%~zp 
06.
 
07.
REM ====SUCHE NACH .PST FILES ÜBER 1MB AUF C:\======= 
08.
:pst 
09.
for /r "%dir%" %%p in ("%file%") do ( 
10.
	if %size% geq 1000000 goto found 
11.
12.
goto end 
13.
 
14.
REM ====.PST-FILE MIT MEHR ALS 1MB GEFUNDEN========== 
15.
:found 
16.
echo %%p >> %systemdrive%\temp\pst.txt 
17.
goto pst 
18.
 
19.
:end 
20.
exit
Bitte warten ..
Mitglied: pieh-ejdsch
28.08.2009 um 13:50 Uhr
Hallo freel0rd,

Hach wo fang ich denn an?


Zeile 09. goto found - machst Du zu: call found "%p"
Zeile 16. echo %%p - funktioniert net in der Subroutine da %%p als For-SchleifenVariable deklariert ist und die For-Schleife in Deiner Zeile 11. mit der schliessenden Klammer beendetet wird und auch hinter diesser schliessenden Klammer kein weiterer Befehl auftaucht. Und es werden nur UmgebungsVariablen und Parameter an Subroutinen Vererbt bzw Weitergegeben. Machst Du aus: %%p - ein: %1 - damit dort der Parameter in die pst.txt reingeschrieben wird.
Zeile 17.mit goto pst - machst Du Dir eine Endlosschleife, welche immer wieder von vorn beginnt und unzählige Forschleifen öffnet. Das ist wiederrum führt dazu dass Deine For-Schleife nie beendet wird. machst Du daraus ein: goto eof
Zeile 12. goto end - schreibst Du als: goto eof
:end und exit kannste weglassen da Batches beim erreichen vom Ende automatisch schliessen bzw diese wird ja mit: goto eof - beendet

Suchts Du nach 1MiB großen Daeteien dann brauchst Du 1048576 als Grössenvergleich das entspricht dem einen MB im Windows.

zum Schluss der einzeiler für die cmd
01.
for /r "c:\" %p in ("*.pst") do @echo "%~dpp" |findstr "C:\Windows">nul||if "%~zp" gtr "1000000" @echo %~p>>%systemdrive%\temp\pst.txt
der Unterordner sollte existieren: %systemdrive%\tmp
eventeuell als Prüfung am beginn in die Batch einbauen.
Bitte warten ..
Mitglied: Biber
28.08.2009 um 15:05 Uhr
Moin freel0rd,

oder zumindest Deine bisherige Zeile 9 ändern, damit die Verzeichnisebene unterhalb von "C:\" Verzeichnis für Verzeichnis geprüft werden kann.

... also eine Außen-FOR/D-Innen-FOR/R-Anweisung:

... 
FOR /D %%p in ("%dir%\*") DO IF  /i "%%~np" NEQ "windows"  Call:FOR_R "%i" 
Goto :eof 
 
:FOR_R Parameter 1 ist das (jeweilige) Start-Directory 
       FOR /F "%~1" %%i in ("%file%") do (  
           .... 
               (wie jetzt) 
...  ) 
Goto :eof
Grüße
Biber
Bitte warten ..
Mitglied: freel0rd
31.08.2009 um 14:38 Uhr
Hallo pieh-ejdsch & Biber,

zunächst einmal herzlichen Dank für eure ausführlichen Antworten. Bin leider bisher nicht dazu gekommen, euren Tips zu folgen, aber ich werde das nachholen.

Viele Grüße,
freel0rd
Bitte warten ..
Ähnliche Inhalte
Windows 7
Win7: wie Unterordner aus Suche ausschließen?
gelöst Frage von ModellixWindows 711 Kommentare

Moin Admins, in einem Verzeichnis mit X Unterverzeichnissen muss ich nach bestimmten Dateitypen (.drw) suchen. Gebe ich nun im ...

Suse
Mehrere Verzeichnisse bei Suche ausschliessen
gelöst Frage von JedujaSuse3 Kommentare

Ich möchte mit einer Suche alle Dateien (nicht Verzeichnisse) ab einer bestimmten Grösse nach Grösse sortiert ausgeben lassen und ...

Windows Tools
Batch Verzeichnis vergleichen, in einer anderes kopieren
Frage von cappu25Windows Tools11 Kommentare

Halloo an alle, ich habe jetzt schon verdammt lange rumprobiert und gegooglet aber ich bekomme keine Lösung hin. Folgendes: ...

Batch & Shell
Mit Batch Verzeichnis durchsuchen
gelöst Frage von Nick2212Batch & Shell9 Kommentare

Hey Leute, ich habe eine Frage, und zwar möchte ich eine Batchdatei erstellen womit ich einen Ordner durchsuchen kann, ...

Neue Wissensbeiträge
Microsoft Office

Office 2010 Starter erneut auf einer frischen Windows-Version installieren

Tipp von Lochkartenstanzer vor 14 StundenMicrosoft Office2 Kommentare

Moin, vor ein paar Tagen schlug bei mir ein Kunde auf, der sein Widnows 7 geschrottet und es inklusive ...

Datenbanken

Upgrade MongoDB 3.4 auf 3.6

Erfahrungsbericht von Frank vor 16 StundenDatenbanken

Seit kurzem gibt es das 3.6 Update für die MongoDB: Sicherheit, das Sortieren, Aggregation und auch die Performance wurde ...

SAN, NAS, DAS

Backdoor Zugang und Upload-Bug in vielen Western Digital MyCloud Geräten

Information von Frank vor 17 StundenSAN, NAS, DAS2 Kommentare

James Bercegay von der Firma Gulftech hat die Fehler an Western Digital gemeldet und das Unternehmen stellt bereits ein ...

Microsoft Office

Outlook 2016 - Beim Weiterleiten keine PDF Anhänge mehr - KB4011626 entfernen

Erfahrungsbericht von Deepsys vor 20 StundenMicrosoft Office1 Kommentar

Wenn ihr feststellt das ihr beim Weiterleiten von E-Mails keine PDF Anhänge mehr versendent, dann dankt Microsoft. Diese tolle ...

Heiß diskutierte Inhalte
Windows Netzwerk
Drucker isolieren in Windows Domäne
gelöst Frage von lcer00Windows Netzwerk14 Kommentare

Hallo zusammen, habe eine Windows-AD (2012R2) in der es einen Druckerserver gibt. Mittlerweile verliere ich das Vertrauen in die ...

Server-Hardware
Veeam Backup Server stürzt alle paar Tage ab
Frage von Leo-leServer-Hardware12 Kommentare

Hallo Forum, ich habe momentan folgendes Problem. Veeam Backup and Replication 9.5 u2 auf voll gepatchten DL 380 G7 ...

Windows 10
Win10 Laptop findet keine Netzwerkgeräte und Freigaben mehr
Frage von CoolzeroWindows 1010 Kommentare

Hi, seit ein paar Tagen habe ich das Problem das mein Windows 10 Laptop keine Geräte mehr in der ...

Batch & Shell
Dateien verschieben mit batch
gelöst Frage von michi-ffmBatch & Shell10 Kommentare

Hallo Zusammen hat jemand evtl eine Idee? Zunächst hier das Skript: Leider werden keine UNC-Pfade unterstüzt, kann mir jemand ...