Thread Registry durchlaufen: rekursiv? (20 answers)
Opened by Gast at 2006-12-01 12:01

Reen
 2006-12-10 17:31
#72106 #72106
User since
2006-12-01
11 Artikel
BenutzerIn
[default_avatar]
Hallo Leute...

Ne weile nix dran gemacht und jetzt habe ich die Suchfunktion eingebaut. Das Prob ist, das irgendwas an den RegExpr noch nich ganz so 100%tig stimmt. Er findet z.B. noch Schlüssel, die ich gar nich in der Suche eingegeben habe.

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#! perl

use Win32::TieRegistry;

print "Registryschluessel finden und loeschen!\n";
print "Suchbegriff: ";
$eingabe = <STDIN>;

my $regroot = $Registry -> Open ("CConfig/Software", {Delimiter=>"/"});
my $regpath= $regroot -> Path;

&func($regroot);

sub func
{ my $regkey = shift;
my ($key, $dir);

foreach $key (keys %$regkey) &nb
sp; # Check ob Keys oder Keys mit Werten
{ chomp($key);

if ($key =~ /^(\/[$eingabe].*)/i)

{ my $name = $1;

$PathSubKey = $regkey -> Path;

chomp($name);

print "RegistyPath: ", $PathSubKey, "\n";

print "Name: ", $name, " Wert: ", $regkey->{$name}, "\n\n";

print "Schluesselwertepaar loeschen? [j/n] ";

my $choice = <STDIN>;

print $choice;

if ($choice =~ /j{1}|J{1}/)

{ print "JA";

my $del = delete $regkey -> {"$name"};

}

}

if ($key =~ /(\/)$/)
{if ($key =~ /^([$eingabe].*)/i)

{ my $name1 = $1;

$PathSubKey = $regkey -> Path;

print $PathSubKey, "[$name1]", "\n";

print "Schluessel mit allen Schluesselwertepaaren loeschen? [j/n] ";

my $choice1 = <STDIN>;

if ($choice1 =~ /j{1}|J{1}/)


{ my $del1 = delete $regkey -> {"$name1"};





exit;


}


}

$dir = $regkey -> Open ("$key"); # In neuen Schlüssel wechseln
$path = $dir -> Path;

&func($dir);
} ;
}
}


Zum Beispiel gibts unter oben eingetragenen Schüssel einen Werte "ProxyEnable" unter InternetSettings. Mit dem Suchbegriff "pro" findet er in auch, aber er findet zusätzlich noch "OEMFONT.FON". Kann mir das ehrlich gesagt nich ganz erklären. Da liegt bestimmt noch ein Fehler bei den RegExpr vor.

Was könnte man daran verbessern, dass es dann passt. Also die Suche soll nur die Schlüssel finden, die am Anfang die eingegebene Zeichenkette enthällt.

Danke
Reen\n\n

<!--EDIT|Reen|1165765029-->

View full thread Registry durchlaufen: rekursiv?