Unter MS-DOS, "perl hallo.pl" will nicht, wie teste ob perl OK?
Thomas N
- perl
Hallo,
hab Anfänger-Perl-Frust, oder vielleicht eher MS-DOS/Windows?
Ich blick nicht was ich zu gern verstehen würde.
Aber ich verstehe nicht warum es läuft, unter MS-DOS (habe noch Win95b) läuft es nämlich nicht.
Der Sambar5.0 hat ja - wenn ich es richtig verstehe - von Haus aus Perl installiert.
Ich weiss nicht wie ich testen könnte, ob ich unter Windows Perl richtig installiert habe?
Das Script:
#!d:\programme3\perl_5.6.1\bin\perl.exe
print "hallo, welt!\n";
Wie gesagt, über Sambar5.0 tut es.
Unter MS-DOS:
HALLO PL 64 16.05.02 14:58 hallo.pl
1 Datei(en) 64 Bytes
7 Verzeichnis(se) 9.575,27 MB frei
D:\1>perl hallo.pl
Befehl oder Dateiname nicht gefunden.
D:\1>perl HALLO.PL
Befehl oder Dateiname nicht gefunden.
-----------
Was mach ich falsch, bzw wie kann ich testen, ob ich Perl unter Windows richtig installiert habe?
Und warum brauch ich Perl zweimal?
Viele Grüsse
Thomas N
Hallo Thomas
Das Script:
#!d:\programme3\perl_5.6.1\bin\perl.exe
print "hallo, welt!\n";
Wie gesagt, über Sambar5.0 tut es.
Weil im Script der Pfad zu perl.exe drin steht, ruft Sambar den Interpreter richtig auf.
Ich nehme mal an, daß Dein Script im Verzeichnis d:\1 steht (ungewöhnliches Verzeichnis):
D:\1>perl hallo.pl
Befehl oder Dateiname nicht gefunden.
Ändere den Aufruf mal in:
D:\1>d:\programme3\perl_5.6.1\bin\perl.exe hallo.pl
Besser ist natürlich, wenn Du die Pfadangabe, die in der autoexec.bat festgelegt wird, um den Pfad zu perl.exe erweiterst. Also öffne die Datei mit einem Text-Editor (z.B. notepad.exe) und ergänze die Zeile, die mit 'path=' anfängt um folgendes (ohne die Gänsefüßchen) ";d:\programme3\perl_5.6.1\bin". Das Semikolon trennt die einzelnen Pfadangaben voneinander. Dann schließe die Datei und boote.
Danach sollte der Aufruf, so wie du ihn probiert hast, funktionieren. Ggf. fehlt in der autoexec.bat noch folgende Zeile: "PERL5LIB=d:\programme3\perl_5.6.1\LIB". Die wirst Du aber noch (!) nicht brauchen.
Ob der Pfad gesetzt ist, erfährst Du, wenn Du in der MS-DOS-Eingabeaufforderung den Befel 'path' eintippst.
Um Dir noch das eintippen von perl.exe zu sparen, kannst Du unter START-->Einstellungen-->Ordneroptionen-->Dateitypen einen neuen Typ für .pl-Dateien anlegen und den mit dem Perlinterpreter verknüpfen.
Gruß Frank
Hallo Frank,
Du bist genial!
So funktioniert es:
D:\1>d:\programme3\perl_5.6.1\bin\perl.exe hallo.pl
hallo, welt!
Nun ist es aber mit meinem Verständnis noch nicht allzuweit gediehen.
1. nehme jetzt an, dass alles richtig installiert ist, hatte Bedenken, dass da von diesen Microsoft-Zusatz-Dateien
für Perl etwas schiefgelaufen sein könnte, kann ich das getrost vergessen?
2. Du schriebst, ich solle ;d:\programme3\perl_5.6.1\bin\ in die autoexec.bat schreiben, ich habe sie unten mal gepostet
weil ich damit nicht sicher bin, wo genau ich es einfügen soll.
Warum geht hier der Pfad nur bis "bin" und nicht auch bis "bin/perl.exe" ?
Wie im Script-Pfad und beim Aufruf über DOS?
3. wenn ich zum Perlinterpreter verknüpfe - davon wurde uns im Kurs abgeraten, wir sollten zu notepad oder
PERLBuilder verknüpfen - dann sollte ich in der MS-DOS-Eingabeaufforderung nur hallo.pl eingeben müssen, richtig?
das geht nämlich nicht:
D:\1>hallo.pl
Befehl oder Dateiname nicht gefunden.
4. warum gibt es unter "bin" eigentlich zwei verschiedene perl.exe's (perl5.6.1.exe und perl.exe)?
Also jedenfalls bis hierhin, und vielen Dank
Grüsse
Thomas N
---------------------------------------------
C:\WINDOWS\COMMAND\MSCDEX.EXE /D:MSCD000 /L:E
mode con codepage prepare=((850) C:\WINDOWS\COMMAND\ega.cpi)
mode con codepage select=850
keyb gr,,C:\WINDOWS\COMMAND\keyboard.sys
SET QTJava=C:\WINDOWS\SYSTEM\QTJava.zip
SET CLASSPATH=%QTJava%;
SET PATH=C:\PROGRA~1\ULTRAE~1;%PATH%
rem insert by Sun Microsystems setup
set DBROOT=C:\Programme\Adabas
rem insert by Sun Microsystems setup
set DBWORK=C:\Programme\Adabas\sql
rem insert by Sun Microsystems setup
set DBCONFIG=C:\Programme\Adabas\sql
rem insert by Sun Microsystems setup
set path=%path%;C:\Programme\Adabas\bin
rem insert by Sun Microsystems setup
set path=%path%;C:\Programme\Adabas\pgm
rem insert by Sun Microsystems setup
set DBROOT=D:\programme3\adabas_d
rem insert by Sun Microsystems setup
set DBWORK=D:\programme3\adabas_d\sql
rem insert by Sun Microsystems setup
set DBCONFIG=D:\programme3\adabas_d\sql
rem insert by Sun Microsystems setup
set path=%path%;D:\programme3\adabas_d\bin
rem insert by Sun Microsystems setup
set path=%path%;D:\programme3\adabas_d\pgm
Hi, ich antworte mal an Stelle von Frank,
Du schriebst, ich solle ;d:\programme3\perl_5.6.1\bin\ in die autoexec.bat schreiben
Warum geht hier der Pfad nur bis "bin" und nicht auch bis "bin/perl.exe" ?
Weil der Pfad (eigentlich Suchpfad) nur eine Liste von Verzeichnissen enthält. Wenn man eine ausführbare Datei in den Prompt eintippt, z.B.:
edit
dann klappert deine Shell (command.com) nacheinander den Pfad ab und guckt, ob es eine edit.bat, edit.com oder edit.exe in den jeweiligen Verzeichnissen gibt. Der erste Fund wird dann ausgeführt. Falls die Datei nicht gefunden wird und es auch kein in die Shell eingebauter Befehl wie dir ist, gibt's die Fehlermeldung.
das geht nämlich nicht:
D:\1>hallo.pl
Befehl oder Dateiname nicht gefunden.
Das geht nur in Unix. Da kann man jede Datei ausführbar machen, indem man ihr das Ausführbar-Attribut zuweist. In Windows sind bloß die 3 Endungen maßgeblich. Ist natürlich ein beklopptes Design, aber das konnte man bloß in Windows3 in der system.ini ändern, AFAIK geht das nicht mehr.
Du musst folgendes machen:
start hello.pl
Das ruft einen Stub auf, welches wie der Explorer in der Registry nachguckt, womit .pl-Dateien verknüpft sind und diese Anwendung startet.
- warum gibt es unter "bin" eigentlich zwei verschiedene perl.exe's (perl5.6.1.exe und perl.exe)?
In Unix steht da bloß eine ausführbare Datei sowie eine Querverbindung auf Dateisystemebene dazu. In Windows kann man das nicht machen, weil Windows' Verknüpfungen auch beklopptes Design sind. Mit Win-Verknüpfungen kann man längst nicht so viel machen wie mit Symlinks, deswegen ist die Datei sicherheitshalber doppelt da. Es handelt sich also um ein zu-kurz-Kommen des Dateisystems: DOS und Windows kennen keine Symlinks.
Ich habe mir mal die Freiheit genommen, deine autoexec aufzuräumen. Du scheinst Adabas doppelt installiert zu haben (einmal fehlgeschlagen, vielleicht? oder nicht korrekt deinstalliert?).
--------------------------
lh c:\windows\command\mscdex.exe /d:mscd000 /l:e
lh c:\windows\command\keyb.com gr,437,c:\windows\command\keybrd2.sys
set dbroot=d:\programme3\adabas_d
set dbwork=d:\programme3\adabas_d\sql
set dbconfig=d:\programme3\adabas_d\sql
set qtjava=c:\windows\system\qtjava.zip
set classpath=%qtjava%
set path=c:\progra~1\ultrae~1;d:\programme3\adabas_d\bin;d:\programme3\adabas_d\pgm;d:\programme3\perl_5.6.1\bin
--------------------------
Du brauchst dringend Nachhilfe in DOS. Schnapp dir deine Windows-CD, kopiere die Dateien aus dem Verzeichnis oldmsdos nach c:\windows\command\ ohne Überschreiben von doppelten Namen, dann rufe vom Prompt die Hilfe auf:
help
Dann arbeite dich durch ein Paar Themen und Befehle, beispielsweise path oder set. Ist auf deutsch und anfängergerecht aufgemacht und trotzdem informativ (hurrah Microsoft). Du kannst Themen auch direkt aufrufen:
help keyb
Gruß und so
n'Abend
Hi, ich antworte mal an Stelle von Frank,
Danke!
das geht nämlich nicht:
D:\1>hallo.pl
Befehl oder Dateiname nicht gefunden.
Das geht nur in Unix. Da kann man jede Datei ausführbar machen, indem man ihr das Ausführbar-Attribut zuweist. In Windows sind bloß die 3 Endungen maßgeblich. Ist natürlich ein beklopptes Design, aber das konnte man bloß in Windows3 in der system.ini ändern, AFAIK geht das nicht mehr.
Da muß ich wiedersprechen! Zumindest unter meinem WinNT hier geht es sehr wohl, einfach hallo.pl einzutippen. Kann sein, daß WinNT einen anderen command.com nutzt. Auf Win9x-Tests muß ich verzichten, ich habe gerade keins da.
Gruß Frank
Hallo,
Kann sein, daß WinNT einen anderen command.com nutzt.
Ja, nämlich cmd.exe;-)
Und diese Shell ist dem alten command.com um einiges überlegen, auch wenn sie bespielsweise der bash nicht das Wasser reichen kann.
Grüße
Klaus
Hallo,
Ja, nämlich cmd.exe;-)
Und diese Shell ist dem alten command.com um einiges überlegen, auch wenn sie bespielsweise der bash nicht das Wasser reichen kann.
Dumme Frage: läuft cmd.exe auch unter Win9x? Kann man den so einfach kopieren?
Gruß Frank
Hallo.
läuft cmd.exe auch unter Win9x? Kann man den so einfach kopieren?
Nein. cmd wurde für den NT-Kernel geschrieben.
Wenn du eine bessere Shell als command suchst:
* bash http://cygwin.com/
* 4dos http://www.jpsoft.com/4dosdes.htm ; ältere Versionen:http://filesearch.ru/cgi-bin/s?q=4dos
Hi!
Da muß ich wiedersprechen! Zumindest unter meinem WinNT hier geht es sehr wohl, einfach hallo.pl einzutippen. Kann sein, daß WinNT einen anderen command.com nutzt. Auf Win9x-Tests muß ich verzichten, ich habe gerade keins da.
Und wenn man .pl noch zur Variable PATHEXT dazupackt, kann man sogar die Erweiterung beim Namen weglassen.
C:> set PATHEXT=%PATHEXT%;.PL
C:> hallo
hallo, welt!
C:> _
So long
--
Die Aggressivitaet kommt vom Heavy Metal!!! CounterStrike ist doch nur zum Runterkommen!!!!!
Hi, ich antworte mal an Stelle von Frank,
Nur zu!
das geht nämlich nicht:
D:\1>hallo.pl
Befehl oder Dateiname nicht gefunden.
Das geht nur in Unix. Da kann man jede Datei ausführbar machen, indem man ihr das Ausführbar-Attribut zuweist. In Windows sind bloß die 3 Endungen maßgeblich. Ist natürlich ein beklopptes Design, aber das konnte man bloß in Windows3 in der system.ini ändern, AFAIK geht das nicht mehr.
Du musst folgendes machen:
start hello.pl
Das scheint nun zu gehen, nur sehr schnell, dass ich es nicht sehen kann!
Kann man das sich öffnende Dos-Fenster auch dabehalten, um zu sehn was drinne steht?
Mit diesem Script:
print "Wen möchten Sie grüßen? : \n";
$input = <STDIN>;
print "Viele Grüße an $input\n";
bleibt das Dos-Fenster wenigstens bei der Eingabe stehen, aber die Grüsse seh ich natürlich nicht.
Ich habe mir mal die Freiheit genommen, deine autoexec aufzuräumen.
Vielen Dank!! Hab Deine Angaben so für meine autoexec übernommen, nur hab ich nun in der DOS-Konsole meine
Zeichenbelegung etwas durcheinander[!!"§$%&/()=?`*'_:;] Den Doppelpunkt gibts gar nicht mehr!
ist das diese Einstellung?
keyb gr,,C:\WINDOWS\COMMAND\keyboard.sys
die hat ich ja vorher? Aber wenn ich die rein tue gehts trotzdem nicht mehr!? :-(
Wie kann man das wieder änder???
Und was bedeutet "lh", dass hat ich vorher ja auch nicht?
Du scheinst Adabas doppelt installiert zu haben (einmal fehlgeschlagen, vielleicht? oder nicht korrekt deinstalliert?).
Mit Adabas, dass kann gut sein. :-)
lh c:\windows\command\mscdex.exe /d:mscd000 /l:e
lh c:\windows\command\keyb.com gr,437,c:\windows\command\keybrd2.sys
set dbroot=d:\programme3\adabas_d
set dbwork=d:\programme3\adabas_d\sql
set dbconfig=d:\programme3\adabas_d\sql
set qtjava=c:\windows\system\qtjava.zip
set classpath=%qtjava%
set path=c:\progra~1\ultrae~1;d:\programme3\adabas_d\bin;d:\programme3\adabas_d\pgm;d:\programme3\perl_5.6.1\bin
Du brauchst dringend Nachhilfe in DOS. Schnapp dir deine Windows-CD, kopiere die Dateien aus dem Verzeichnis
oldmsdos nach c:\windows\command\ ohne Überschreiben von doppelten Namen, dann rufe vom Prompt die Hilfe auf:help
Dann arbeite dich durch ein Paar Themen und Befehle, beispielsweise path oder set.
Ist auf deutsch und anfängergerecht aufgemacht und trotzdem informativ (hurrah Microsoft).
Du kannst Themen auch direkt aufrufen:
help keyb
Das hat wunderbar geklappt, super! :-))
Viel Grüsse
Thomas N