Archiv verlassen und diese Seite im Standarddesign anzeigen : auf dateien zugreifen
wie kann man mit perl script-intern auf dateien zugreifen? also so ein script à la "starte outlook express, mirc und icq" ...
system("") oder qw("")
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
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...
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.
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
ö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 ....
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
soviel ich weiß, wartet system, bis der befehl ausgeführt _und_ beendet ist
qx startet einfach nur...
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!
Ä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...
kein plan, ob´s hier funzt, aber probier mal pfadangaben statt mit "\" mit "/" zu machen, oder mit "\\" <- so is dat jedenfalls bei cpp. hoffe, es hilft dir ;)
dafür hab ich auch schon ne lösung gefunden:
system (´start "" "c:\...\outlook express.\..."´);
so einfach ist das ;)
Messiah_of_Death
07.05.2002, 14:41
Original von D3DSH33P
... oder mit "\\" <- so is dat jedenfalls bei cpp.
weil ein normales \ zwei oder mehr zeilen als eine interpretiert...
Felix Kaiser
07.05.2002, 15:03
system(´start C:\\Programme\\dirc\\dIRC.exe´);
system(´start C:\\Programme\\ICQ\\Icq.exe´);
system(´start C:\\Programme\\Internet Explorer\\IEXPLORE.EXE´);
system(´start C:\\Programme\\Winamp\\winamp.exe´);
system(´start C:\\Programme\\Outlook Express\\msimn.exe´);
Probiers mal so. Bei Doppelleerzeichen, wenns da Probleme gibt, kannst du z.B. so lösen: ´\ \ ´ (weiß aber nicht 100%ig obs klappt.
http://selfhtml.teamone.de/cgiperl/sprache/zeichenketten.htm
Beschreibt nochmal Zeichenketten in Perl, vielleicht hilfts.
jezt aber entgültig:
wenn ich irgendwas starten will, ist der entgültige code (zumindest für windows):
system(´start "" "c:\outlook express/msinm.exe"´);
so, damit´s jeder verstanden hat ;)
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.