Schrift
[thread]12082[/thread]

Verzeichnisse löschen und anlegen mit ggf. Debugoutput



<< >> 5 Einträge, 1 Seite
Xeno
 2008-06-25 20:36
#111523 #111523
User since
2008-06-25
4 Artikel
BenutzerIn
[default_avatar]
Hi zusammen,

ich befinde mich derzeit beim Schwenk von Autoit zu Perl. Bzw. ich möchte nicht schwenken, sondern ein zweites Standbein aufbauen.

Erstes Problem lautet wie folgt:

Ich möchte ein Verzeichnis samt aller Unterverzeichnisse löschen. Dafür habe ich folgendes gefunden.

File::Path inkl. rmtree

Das Löschen klappt auch, ich möchte aber oben in meinem Skript eine Variable names $debug = 0 oder halt 1 setzen.

Wenn nun $debug auf eins gesetzt wird, dann soll Perl alles protokollieren. Sowohl Fehler als auch Erfolg.

Wie mache ich sowas am schlausten?

Links auf andere Threads sind ok, aber bitte nicht einfach such mal schreiben.

Vielen Dank im Voraus!

Mega
pq
 2008-06-25 22:00
#111525 #111525
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
wenn man rmtree als zweites argument eine 1 übergibt, wird eine fehlermeldung automatisch
ausgegeben.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Xeno
 2008-06-26 01:30
#111527 #111527
User since
2008-06-25
4 Artikel
BenutzerIn
[default_avatar]
Hi,

vielen Dank für die Antwort, aber wenn ich

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
#!/usr/bin/perl -w

use File::Path;

my $aufruf;
my $path  = "c:\\Temp\\Hugo";
my $path1 = "c:\\Temp\\Hugo1";
my $path2 = "c:\\Temp\\Hugo2";
my $debug = 1;

rmtree( $path,  1 );
rmtree( $path1, 1 );
rmtree( $path2, 1 );


schreibe und $path2 nicht existiert, dann wird auch nichts ausgegeben. Sprich es wird nur das Löschen protokolliert aber nicht die Fehler.

Mega

P.S.: Na ja, dann muss ich es halt komplett selbst schreiben. :-(
pq
 2008-06-26 02:37
#111528 #111528
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
Xeno+2008-06-25 23:30:51--
P.S.: Na ja, dann muss ich es halt komplett selbst schreiben. :-(

wieso denn das? du kannst ja vor dem rmtree() auf die existenz des pfades prüfen. das geht
mit -d (fragt ab, ob die datei existiert und ein verzeichnis ist).
verstehe nicht, warum du dafür gleich auf File::Path verzichten willst.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Xeno
 2008-06-26 10:13
#111529 #111529
User since
2008-06-25
4 Artikel
BenutzerIn
[default_avatar]
Hi,

das ich es irgendwie hinbekomme, daran zweifel ich ja nicht. :-)
Mein Problem ist nur, dass ich sowohl alles Positive wie auch Negative loggen möchte, wenn ich eine globale Variable auf true setze.

So würde das ungefähr in Autoit aussehen (ich weiß, dass beides zu loggen und nicht nur den Fehler evtl. ungewöhnlich ist und viel mehr Prüfungen erfordert.)
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Global $path = "c:\Temp\Hugo";
Global $path1 = "c:\Temp\Hugo1";
Global $path2 = "c:\Temp\Hugo2";
Global $debug = 1;

Global $re = DirRemove($path, 1)
_debug("DirRemove  : " & $path, $re)
Global $re = DirRemove($path1, 1)
_debug("DirRemove  : " & $path1, $re)
Global $re = DirRemove($path2, 1)
_debug("DirRemove  : " & $path2, $re)

Func _debug($command, $returnCode)
        If $debug = True Then
                If $re = True Then
                        ConsoleWrite('OK : ' & $command & @CRLF)
                Else
                        ConsoleWrite('Fehler : ' & $command & @CRLF)
                EndIf
        EndIf
        Return 1
EndFunc   ;==>_debug

(Habe mal die Perl-Tags gelassen, weil es doch besser lesbar ist, als bei Code.)

Ich werde deine Idee aber mal aufgreifen und dann eben bei 2 oder 3 Befehlen den Rückgabewert auswerten.

DANKE!

Mega
<< >> 5 Einträge, 1 Seite



View all threads created 2008-06-25 20:36.