Font
[thread]5572[/thread]

Verzeichnis-Problem bei Skript-Ausführung



<< >> 4 entries, 1 page
guest Gast
 2006-08-28 17:02
#48073 #48073
Hallo liebe Forum-User,

kann mir jemand vielleicht weiterhelfen???

Ich bin gerade dabei ein kleines Programm zu schreiben, welches eine Log-Datei erstellt.

Dabei bin ich auf folgendes Problem gestoßen:

Jedesmal wenn ich ein Skript außerhalb seines Verzeichnis ausführen will, legt er mir die Log-Datei nicht an. Wechsel ich allerdings in das Skript-Verzeichnis und führe es dort aus wird die Datei erstellt.

Wie muss ich Perl oder Windows anpassen, dass ich das Skript außerhalb seines Ordners ausführen kann.

Hier der Code:
Code: (dl )
1
2
3
4
5
#!C:/bin/perl -w 
open(SCHREIBEN,">> neu.txt") or die "Fehler beim Öffnen von 'neu.txt': $!\n";
printf(SCHREIBEN "Just another Perl hacker\n");
close(SCHREIBEN) or die "Fehler beim Schließen von 'neu.txt': $! \n";
print("Just another Perl hacker\n");

Dass das Skript ausgeführt wird, bin ich mir 100% sicher. Es erscheint auch jedesmal "Just another Perl hacker\n" Konsole.

Ich nutze:
Windows XP HOME SP2
ActiveState ActivePerl 5.8.8 Build 817

Vielen dank schon mal im Voraus. :-)
Code: (dl )
Code: (dl )
[CODE]\n\n

<!--EDIT|renee|1156773451-->
pktm
 2006-08-28 18:00
#48074 #48074
User since
2003-08-07
2921 articles
BenutzerIn
[Homepage]
user image
Bei mir geht das. Ich habe es in mehreren Verzeichnissen laufen lassen. Ich habe auch eine Verknüpfung ausprobiert und es ging. Ist das eigentlich dein eigener PC oder ist es eventuell ein öffentlicher mit eingeschränkten rechten?
http://www.intergastro-service.de (mein erstes CMS :) )
renee
 2006-08-28 18:02
#48075 #48075
User since
2003-08-04
14371 articles
ModeratorIn
[Homepage] [default_avatar]
Du verwendest einen relativen Pfad. Die Datei wird immer in den Ordner gelegt, von dem aus Du das Skript aufrufst. Wenn Du die Datei im Ordner des Skripts haben willst, solltest Du CPAN:FindBin verwenden:

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

use strict;
use warnings;
use FindBin ();

my $file = $FindBin::Bin . '/neu.txt';

open(SCHREIBEN,">>",$file) or die "Fehler beim Öffnen von 'neu.txt': $!\n";
print SCHREIBEN "Just another Perl hacker\n";
close(SCHREIBEN) or die "Fehler beim Schließen von 'neu.txt': $! \n";
print("Just another Perl hacker\n");



Woher habt ihr das eigentlich mit dem printf?? Das braucht man bei solchen Sachen nicht...
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/
renee
 2006-08-28 18:03
#48076 #48076
User since
2003-08-04
14371 articles
ModeratorIn
[Homepage] [default_avatar]
Ach, eins hab' ich noch vergessen. Du siehst bei mir im Skript am Anfang das use strict; use warnings;. Man sollte sich angewöhnen, das zu verwenden. Was das macht, ist in Wiki:diesem Artikel beschrieben.
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/
<< >> 4 entries, 1 page



View all threads created 2006-08-28 17:02.