Schrift
[thread]12453[/thread]

*.bat löschen (Seite 2)

Leser: 1


<< |< 1 2 3 4 >| >> 34 Einträge, 4 Seiten
pq
 2008-09-09 12:38
#114412 #114412
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
Snicker+2008-09-09 10:05:42--
Warum sollte man keine Arrays verwenden und statt dessen lieber skalare? Sehe selbst da keinen Vor-/Nachteil.

wer hat denn das gesagt? schau mal genau hin:
Code: (dl )
1
2
3
4
5
6
7
8
9
$ perl -wle'
my @array = qw/ a b c /;
print $array[1];'
b
$ perl -wle'
my @array = qw/ a b c /;
print @array[1];'
Scalar value @array[1] better written as $array[1] at -e line 3.
b

wenn du warnings benutzt hättest, hättest du diese warnung bekommen.
die sagt doch schon alles, oder?
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
Snicker
 2008-09-09 12:53
#114417 #114417
User since
2008-08-09
25 Artikel
BenutzerIn
[default_avatar]
ok, dann werde ich das mit dem Array umändern.
Meine Frag ist aber immer noch nicht wirklich beantwortet. Warum ist es besser ein Skalar zu verwenden als das Array?

Zu meinem alten Problem mit der *.bat: hat jemand eine Idee, wie ich da vorgehen könnte, damit ich die *.bat Datein löschen kann?
renee
 2008-09-09 13:10
#114420 #114420
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Weil Du ein Skalar haben willst (ein einzelnes Element aus dem Array) und keine Liste.

Du machst "zahl * zahl" und eine Zahl ist ein Skalar und keine Liste...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
pq
 2008-09-09 13:30
#114421 #114421
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
Snicker+2008-09-09 10:53:16--
Meine Frag ist aber immer noch nicht wirklich beantwortet. Warum ist es besser ein Skalar zu verwenden als das Array?

nochmal: es sagt keiner, dass du kein array verwenden sollst.
es ist nur einfach nicht die korrekte syntax. wenn du auf *ein* element eines arrays
zugreifen willst, nimmst du das dollarzeichen.
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
Snicker
 2008-09-09 19:20
#114431 #114431
User since
2008-08-09
25 Artikel
BenutzerIn
[default_avatar]
ok, danke an alle!
Stand vorhin ziemlich auf dem Schlauch. Hab es jetzt endlich kapiert, was ihr meintet. Der Quelltext ist bereits korrigiert und es tauchen auch keine Warnhinweise mehr auf.

Kennt jemand eine Möglichkeit eine Batchdatei (mit einem Sleepbefehl) über perl zu starten, anschließend schließt perl und die Batchdatei wird dann aktiv und löscht die verbliebenen Files und sich selbst am Ende mit?
Das erstellen der beiden Batchdatein ist kein Problem und habe ich auch schon geschaft, nur weiß ich nicht, wie ich Perl beenden und gleichzeitig eine Batch starten kann, ohne dass das Konsolenfenster von Perl noch offen ist.
Linuxer
 2008-09-09 19:27
#114433 #114433
User since
2006-01-27
3882 Artikel
HausmeisterIn

user image
Schon mal
Code (perl): (dl )
exec( $full_path_to_batch );
am Ende des Perl-Skripts ausprobiert?

perldoc -f exec
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!
Gast Gast
 2008-09-09 19:43
#114434 #114434
Snicker+2008-09-09 17:20:17--
Kennt jemand eine Möglichkeit eine Batchdatei (mit einem Sleepbefehl) über perl zu starten, anschließend schließt perl und die Batchdatei wird dann aktiv und löscht die verbliebenen Files und sich selbst am Ende mit?

Warum willst du das Löschen der Dateien nicht auch über Perl machen?

Snicker+2008-09-09 17:20:17--
nur weiß ich nicht, wie ich Perl beenden und gleichzeitig eine Batch starten kann, ohne dass das Konsolenfenster von Perl noch offen ist.

Code (perl): (dl )
exec($batch_file) unless(fork);

Erzeugt einen Hintergrundprozess, und führt die Batchdatei aus, danach kann das Perlscript beendet werden.
Snicker
 2008-09-09 20:55
#114438 #114438
User since
2008-08-09
25 Artikel
BenutzerIn
[default_avatar]
Gast+2008-09-09 17:43:24--
Warum willst du das Löschen der Dateien nicht auch über Perl machen?

Liegt daran, dass solange das Fenster offen ist, habe ich keine Zugriff auf die *.bat Datein. Erst wenn das Perlfenster geschlossen ist, kann ich sie löschen.

Gast+2008-09-09 17:43:24--
Code (perl): (dl )
exec($batch_file) unless(fork);

Erzeugt einen Hintergrundprozess, und führt die Batchdatei aus, danach kann das Perlscript beendet werden.

Klappt nicht. Das Fenster von Perl bleibt solange bestehen, bis der Prozess fertig ausgeführt ist. In meinem Fall kommen ein paar Fehlermeldungen (Zugriff verweigert) zurück und erst dann schließt sich das Fenster.
Linuxer
 2008-09-09 21:04
#114440 #114440
User since
2006-01-27
3882 Artikel
HausmeisterIn

user image
Das fork() finde ich hier überflüssig. Das Perl-Skript soll doch beendet werden. Genau für sowas ist exec() geeignet; wozu dann erst noch fork()?

Ich harre der Antwort auf meine Frag in Beitrag 16; wobei ich noch Zweifel habe, dass die Batch-Datei sich am Ende selber löschen kann. Genau wegen der Zugriffsproblematiken unter WinDOS. Aber damit sollen sich andere rumplagen ;o))
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!
MatthiasW
 2008-09-09 21:06
#114441 #114441
User since
2008-01-27
367 Artikel
BenutzerIn
[default_avatar]
Und was passiert ohne das unless fork;?

edit: zu langsam..
perl -E'*==*",s;;%ENV=~m,..$,,$&+42;e,$==f;$"++for+ab..an;@"=qw,u t,,print+chr;sub f{split}say"@{=} me"'
<< |< 1 2 3 4 >| >> 34 Einträge, 4 Seiten



View all threads created 2008-09-08 13:45.