PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : auf dateien zugreifen


rrdh
01.05.2002, 18:18
wie kann man mit perl script-intern auf dateien zugreifen? also so ein script à la "starte outlook express, mirc und icq" ...


Jonas
02.05.2002, 15:32
system("") oder qw("")

rrdh
02.05.2002, 17:18
sry, bin noch n ziemlicher nub in perl, könntest du mir vielleicht n beispiel angeben?

thx in advance

Daidaloz
02.05.2002, 17:24
system("mirc.exe");

oder system("C:\mirc.exe");


oder wie auch immer! :D

rrdh
03.05.2002, 14:30
cool ...
aber irgendwie startet er immer nur dirc, obwohl ich

system(´C:\Programme\dirc\dIRC.exe´);
system(´C:\Programme\ICQ\Icq.exe´);
system(´C:\Programme\Internet Explorer\IEXPLORE.EXE´);
system(´C:\Programme\Winamp\winamp.exe´);
system(´C:\Programme\Outlook Express\msimn.exe´);

eingegeben habe...

Jonas
03.05.2002, 15:15
probiers mal mit qx...

rrdh
03.05.2002, 15:45
funkt auch nicht :(

code:
#!/usr/bin/perl -w

print "loading...";
qx("C:\Programme\dirc\dIRC.exe");
print "loaded";

fehlermeldung:
Unrecognized escape \P passed through at C:\i.pl line 4.
Unrecognized escape \d passed through at C:\i.pl line 4.
Unrecognized escape \d passed through at C:\i.pl line 4.
loading...Die Syntax für den Dateinamen,
Verzeichnisnamen oder die Datenträgerbe
zeichnung ist falsch.

K21
03.05.2002, 18:12
vielleicht schafft es dein system auch nicht.... mach einfach mal nen delay zwischen den einzelnen system aufrufen rein ... so nach dem motto sleep(10); oder so

rrdh
03.05.2002, 19:56
öhm.... 1GHz 256Ram sollten doch wohl ausreichen um mal n perlscript und n paar programme zum laufen zu bringen, oder? ich werde deiner idee troztdem mal nachgehen ....

K21
03.05.2002, 20:26
ich meinte nicht dein system gesamt, aber perl führt die befehle in kürzester zeit aus... und wenn er also fast gleichzeitig icq und winamp und iexplorer und nochwas starten soll dann schafft er das wahrscheinlich nicht in so schneller zeit!
kannst noch so einen schnellen rechner haben :)
und deswegen könnte es sein dass er meckert..
gut wäre wenn du dir ne möglich keit überlegen würdest wie du nachprüfen kannst ob ein programm läuft und das script dann zum nächsten springt

Jonas
03.05.2002, 21:52
soviel ich weiß, wartet system, bis der befehl ausgeführt _und_ beendet ist
qx startet einfach nur...

rrdh
04.05.2002, 12:00
hab jetzt n weg gefunden

system(´start c:\.....\dIRC.exe´)

jetzt habe ich aber ein anderes problem:
ich kann so (siehe oben) keine programme laden, die in ihrem pfad ein leerzeichen enthalten (also z.b. "c:\programme\outlook express\msinn.exe"). wie kann ich perl verständlich machen, dass das leerzeichen mit zum pfad gehört?
wenn ich
system(´start "c:\programme\outlook express\msinn.exe"´);
eingebe, startet er die msdos-eingabeaufforderung!

Jonas
04.05.2002, 17:44
Äh, keine Ahung, wenn du alles in Anführungszeichen hast sollte er das doch checken oder?
Und wenn nicht, denke ich mal liegt es daran, daß Leerzeichen im Pfad ja eigentlich nicht geplant sind (unter *nix), oder?

Kannst ja ma versuchen, auf c ne Verknüpfung auf Outlook zu legen und die zu starten...

Schaf
04.05.2002, 19:10
kein plan, ob&acute;s hier funzt, aber probier mal pfadangaben statt mit &quot;\&quot; mit &quot;/&quot; zu machen, oder mit &quot;\\&quot; <- so is dat jedenfalls bei cpp. hoffe, es hilft dir ;)

rrdh
07.05.2002, 14:34
dafür hab ich auch schon ne lösung gefunden:
system (&acute;start &quot;&quot; &quot;c:\...\outlook express.\...&quot;&acute;);
so einfach ist das ;)

Messiah_of_Death
07.05.2002, 14:41
Original von D3DSH33P
... oder mit &quot;\\&quot; <- so is dat jedenfalls bei cpp.


weil ein normales \ zwei oder mehr zeilen als eine interpretiert...

Felix Kaiser
07.05.2002, 15:03
system(&acute;start C:\\Programme\\dirc\\dIRC.exe&acute;);
system(&acute;start C:\\Programme\\ICQ\\Icq.exe&acute;);
system(&acute;start C:\\Programme\\Internet Explorer\\IEXPLORE.EXE&acute;);
system(&acute;start C:\\Programme\\Winamp\\winamp.exe&acute;);
system(&acute;start C:\\Programme\\Outlook Express\\msimn.exe&acute;);


Probiers mal so. Bei Doppelleerzeichen, wenns da Probleme gibt, kannst du z.B. so lösen: &acute;\ \ &acute; (weiß aber nicht 100%ig obs klappt.

http://selfhtml.teamone.de/cgiperl/sprache/zeichenketten.htm

Beschreibt nochmal Zeichenketten in Perl, vielleicht hilfts.

rrdh
07.05.2002, 15:55
jezt aber entgültig:
wenn ich irgendwas starten will, ist der entgültige code (zumindest für windows):

system(&acute;start &quot;&quot; &quot;c:\outlook express/msinm.exe&quot;&acute;);

so, damit&acute;s jeder verstanden hat ;)