
130834
12.01.2017
FOR R Ordner Filterung? KLAMMERAUF BATCH KLAMMERZU
Hallo Leute
Ich bins wieder mit einer netten Frage über cmd.
Wie immer.
Also es geht darum das ich ein Skript habe, das schlicht weg alles
und eben doch nicht alles durchsuchen soll.
Es handelt in etwa so;
Nimm jeden Buchstaben im Alphabet und ruf die sub Funktion 1 auf
Sub Funktion 1 überprüft dann ob dieses Laufwerk existiert, und falls ja tut es folgendes:
Für Alle Dateien die bestimmte Erweiterungen haben ( welche im der Master File Table Variable gespeichert sind )
gib deren Pfad in eine Datei aus.
Meine Master File Table Variable enthält momentan wegen den Tests nur etwa 7 Endungen.
Und Trotzdem dauert es sehr lange.
Das ist aber nicht mein Problem, es kann von mir aus lange dauern, ABER:
Bestimmte Ordner wie z.b. Adobe möchte ich nicht durchsuchen lassen.
Denn: Sie enthalten etwa 3000 .png's und Diese werden alle aufgelistet, ich will sie aber weder haben
( das mit dem nicht-haben lässt sich mit einer findstr /v lösen )
und auch gar nicht erst verarbeiten, denn ihr könnt euch ja denken wie lange das dauert.
Das Zeil des Skripts ist einfach, Dateien mit bestimmten Endungen zu finden, welche mehr oder weniger dem Nutzer gehören.
So kann man sich ganz gut einen Überblick machen was man so hat. Die ganzen System Dateien stören dabei nur.
( Bitte NICHT darauf festnageln. Ich suche nach einer Lösung mit der vorgegebenen Funktion, nicht nach einer Lösung alle Nutzer-Dateien aufzulisten )
Nun stehe ich etwas an. Lasse ich die FINDSTR Funktion bei jedem Ordner laufen, dauert das überprüfen in etwa 7 mal so lange.
Zuerst habe ich gedacht, ich lasse einfach eine DIR für das Laufwerk laufen, und darüber eine FINDSTR.
Leider ist mir das eigentlich zu ungenau, da sich ja manche Programme auch unterhalb Ordner von z.b. C:\ einschreiben.
Also weder bei jedem loop überprüfen noch Nur im obersten Laufwerk überprüfen.
Ich könnte zwar JEDEN Ordner listen lassen, dann alle ungewollten rausfiltern und dann erst die Dateien suchen lassen.
Ich glaube aber das das noch viel länger dauern würde als alles andere.
Gibt es Irgendeinen Weg bestimmte Schlüsselwörter aus einem DIR Befehl oder einem FOR /R Befehl zu enthalten?
Wäre für eine Antwort sehr dankbar
lg clragon
Ich bins wieder mit einer netten Frage über cmd.
Wie immer.
Also es geht darum das ich ein Skript habe, das schlicht weg alles
und eben doch nicht alles durchsuchen soll.
Es handelt in etwa so;
Nimm jeden Buchstaben im Alphabet und ruf die sub Funktion 1 auf
Sub Funktion 1 überprüft dann ob dieses Laufwerk existiert, und falls ja tut es folgendes:
Für Alle Dateien die bestimmte Erweiterungen haben ( welche im der Master File Table Variable gespeichert sind )
gib deren Pfad in eine Datei aus.
Meine Master File Table Variable enthält momentan wegen den Tests nur etwa 7 Endungen.
Und Trotzdem dauert es sehr lange.
Das ist aber nicht mein Problem, es kann von mir aus lange dauern, ABER:
Bestimmte Ordner wie z.b. Adobe möchte ich nicht durchsuchen lassen.
Denn: Sie enthalten etwa 3000 .png's und Diese werden alle aufgelistet, ich will sie aber weder haben
( das mit dem nicht-haben lässt sich mit einer findstr /v lösen )
und auch gar nicht erst verarbeiten, denn ihr könnt euch ja denken wie lange das dauert.
Das Zeil des Skripts ist einfach, Dateien mit bestimmten Endungen zu finden, welche mehr oder weniger dem Nutzer gehören.
So kann man sich ganz gut einen Überblick machen was man so hat. Die ganzen System Dateien stören dabei nur.
( Bitte NICHT darauf festnageln. Ich suche nach einer Lösung mit der vorgegebenen Funktion, nicht nach einer Lösung alle Nutzer-Dateien aufzulisten )
Nun stehe ich etwas an. Lasse ich die FINDSTR Funktion bei jedem Ordner laufen, dauert das überprüfen in etwa 7 mal so lange.
Zuerst habe ich gedacht, ich lasse einfach eine DIR für das Laufwerk laufen, und darüber eine FINDSTR.
Leider ist mir das eigentlich zu ungenau, da sich ja manche Programme auch unterhalb Ordner von z.b. C:\ einschreiben.
Also weder bei jedem loop überprüfen noch Nur im obersten Laufwerk überprüfen.
Ich könnte zwar JEDEN Ordner listen lassen, dann alle ungewollten rausfiltern und dann erst die Dateien suchen lassen.
Ich glaube aber das das noch viel länger dauern würde als alles andere.
Gibt es Irgendeinen Weg bestimmte Schlüsselwörter aus einem DIR Befehl oder einem FOR /R Befehl zu enthalten?
Wäre für eine Antwort sehr dankbar
lg clragon
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 326206
Url: https://administrator.de/forum/for-r-ordner-filterung-klammerauf-batch-klammerzu-326206.html
Ausgedruckt am: 13.05.2025 um 23:05 Uhr
9 Kommentare
Neuester Kommentar
Muss es ein Batch sein?
In C# könnstest du in etwa sowas machen. Wäre auch viel schneller:
In C# könnstest du in etwa sowas machen. Wäre auch viel schneller:
string filesTMP;
List<string> files = new List<string>();
strin> ExtensionPattern = {"*.txt", "*.pdf"};
Foreach (var pattern in ExtensionPattern)
{
try
{
filesTMP = Directory.GetFiles(@"C:\ProgramData", pattern, SearchOption.AllDirectories);
}
catch{}
foreach(var file in filesTMP)
{
files.add(file);
}
}
//weiterverarbeitung