Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Einfache Scriptsprache für Win95

1 view
Skip to first unread message

Karsten Kleffmann

unread,
Jun 17, 1998, 3:00:00 AM6/17/98
to

Schönen guten Tach.

Ich suche seit längerem 'ne EINFACHE Scriptsprache für Windows 95, nicht
sowas wie C++ usw. Ist für meine Zwecke viel zu aufwendig. Gibt's sowas?
Und wenn ja, wo?

Danke schön...

Karsten


Sascha Ziemann

unread,
Jun 17, 1998, 3:00:00 AM6/17/98
to

Karsten Kleffmann <A.I...@ping.de> writes:

| Ich suche seit längerem 'ne EINFACHE Scriptsprache für Windows 95, nicht
| sowas wie C++ usw. Ist für meine Zwecke viel zu aufwendig. Gibt's sowas?
| Und wenn ja, wo?

Es gibt SCM für Windows und Guile soll auch laufen. Beides Scheme. Der
Scheme Standard ist ca. 50 Seiten lang und somit der kürzeste im
Vergleich zu allen anderen Programmiersprachen. Deshalb kann man
Scheme auch relativ schnell lernen. Ein Hello World sieht so aus:

(display "Hello World\n")

Und folgendes gibt eine Liste aller Datein im aktuellen Verzeichnis aus:

(define (read-whole-dir port)
(let ((line (readdir port)))
(if (eof-object? line)
'()
(cons line (read-whole-dir port)))))

(define dir-port (opendir "."))

(for-each (lambda (line)
(display line)
(newline))
(read-whole-dir dir-port))

(closedir dir-port)

Und wenn man das noch etwas erweitert, bekommt man auch alle
Unterverzeichnisse und deren Dateien:

(define (read-dir dir)
(let ((dir-port (opendir dir)))
(letrec ((read-files
(lambda ()
(let ((file (readdir dir-port)))
(if (eof-object? file)
'()
(if (or (equal? file ".")
(equal? file ".."))
(read-files)
(let ((full-name (string-append dir "/" file)))
(if (file-is-directory? full-name)
(append (cons full-name (read-dir full-name))
(read-files))
(cons full-name (read-files))))))))))
(let ((files (read-files)))
(closedir dir-port)
files))))

(let ((files (read-dir ".")))
(for-each (lambda (file)
(display file)
(newline))
files))

--
http://www.ping.de/sites/aibon/

Florian Frank

unread,
Jun 17, 1998, 3:00:00 AM6/17/98
to

In ping.general Karsten Kleffmann <A.I...@ping.de> wrote:
>Ich suche seit längerem 'ne EINFACHE Scriptsprache für Windows 95, nicht
>sowas wie C++ usw. Ist für meine Zwecke viel zu aufwendig. Gibt's sowas?

Hoert sich nach Perl an.

>Und wenn ja, wo?

Gibt's kostenlos im Internet.

--
USER PID %CPU %MEM SIZE RSS TTY STAT START TIME COMMAND
rc5 331 84.7 0.4 1032 396 ? R N 20:59 561:56 ./rc5des
Send email to fl...@nixe.ping.de with *Subject: pgpsend* for PGP PubKey!
_PGP fingerprint: 34 E9 05 7E 00 AF 1E 34 55 B6 D6 50 69 2E C3 C2_

Lars Brandt

unread,
Jun 17, 1998, 3:00:00 AM6/17/98
to

Sascha Ziemann <s...@aibon.ping.de> wrote:
> Karsten Kleffmann <A.I...@ping.de> writes:

> | Ich suche seit längerem 'ne EINFACHE Scriptsprache für Windows 95, nicht
> | sowas wie C++ usw. Ist für meine Zwecke viel zu aufwendig. Gibt's sowas?

> | Und wenn ja, wo?

[ ... Scheme Standard nur 50 Seiten ]

> (cons full-name (read-files))))))))))

Beinahe intuitiv. Eine Sprache, an die ich mich klammern koennte.
Btw, ab der wievielten Klammerebene steigt der Emacs mit 'nem SegFault
aus? Oder selbst mitzaehlen?

Gruss,

Brandy

--
EMACS belongs in <sys/errno.h>: Editor too big!
The Unknown User <anon...@nowhere.uucp>

Jens Theisen

unread,
Jun 18, 1998, 3:00:00 AM6/18/98
to

Florian Frank wrote:
>In ping.general Karsten Kleffmann <A.I...@ping.de> wrote:
>>Ich suche seit längerem 'ne EINFACHE Scriptsprache für Windows 95, nicht
>>sowas wie C++ usw. Ist für meine Zwecke viel zu aufwendig. Gibt's sowas?
>
>Hoert sich nach Perl an.

Perl ist aber vielleicht ein bischen sehr einfach. :-)

- Jens Theisen / j...@jth.ping.de -

Sascha Ziemann

unread,
Jun 18, 1998, 3:00:00 AM6/18/98
to

Lars Brandt <l...@gmx.net> writes:

| > (cons full-name (read-files))))))))))
|
| Beinahe intuitiv. Eine Sprache, an die ich mich klammern koennte.

Nicht mehr Klammern als in C. Wenn du willst, kannst du es auch als

(
cons a b
)

schreiben, wenn du damit glücklicher wirst. Außerdem gibt es für ganz
harte Fälle von Inflexibilität noch Tax. Das sieht wirklich wie C aus
und wird beim Lesen automatisch nach Scheme transformiert.

| Btw, ab der wievielten Klammerebene steigt der Emacs mit 'nem SegFault
| aus? Oder selbst mitzaehlen?

Der Vorteil an Scheme in Gegensatz zu vielen anderen Sprachen ist, daß
es *keine* Segfaults gibt! Selbst hochgradig unsinnige Anweisungen
führen nicht zu Abstürzen, sondern zu wohldefinierten Fehlermeldungen:

----------------------------------------
guile> (+ 5 "7")

Backtrace:
0* [+ 5 "7"]

ERROR: In procedure + in expression (+ 5 "7"):
ERROR: Wrong type argument in position 2: "7"
ABORT: (wrong-type-arg)
----------------------------------------

die man mit Leichtigkeit in seinen eigenen Programmen auffangen kann:

----------------------------------------
guile> (catch #t
(lambda () (+ 5 "7"))
(lambda (key . args)
(display "das war falsch!\n")))
das war falsch!
----------------------------------------

--
http://www.ping.de/sites/aibon/

Florian Frank

unread,
Jun 18, 1998, 3:00:00 AM6/18/98
to

Klar! ;-) Siehe dazu auch:

You can learn Perl "small end first". You can program in Perl
Baby-Talk, and we promise not to laugh. Or more precisely, we promise
not to laugh any more than we'd giggle at a child's creative way of
putting things.
-- Larry Wall, Preface of "Programming Perl, 2nd Edition".

--
USER PID %CPU %MEM SIZE RSS TTY STAT START TIME COMMAND

rc5 374 94.6 0.3 1032 344 ? R N 12:29 434:31 ./rc5des

Sascha Ziemann

unread,
Jun 19, 1998, 3:00:00 AM6/19/98
to

j...@jth.ping.de (Jens Theisen) writes:

| Perl ist aber vielleicht ein bischen sehr einfach. :-)

Was ist denn an Perl einfach? Der Umfang der Syntax wird ja wohl wenn
überhaupt nur noch von Ada oder ähnlichem Zeug getoppt. Willst du
sowas einem Anfänger anbieten:

($op = shift) || &usage;
if ($op eq "-n") {
$show = $op;
($op = shift) || &usage;
}
if (!@ARGV) {
@ARGV = <STDIN>;
chop(@ARGV);
}

for (@ARGV) {
next unless -f $_;

$was = $_;
eval $op;
die $@ if $@;

if ($was ne $_) {
if ($show) {

--
http://www.ping.de/sites/aibon/

Lars Brandt

unread,
Jun 19, 1998, 3:00:00 AM6/19/98
to

Sascha Ziemann <s...@aibon.ping.de> wrote:

[ ... Tax ]

> Der Vorteil an Scheme in Gegensatz zu vielen anderen Sprachen ist, daß
> es *keine* Segfaults gibt! Selbst hochgradig unsinnige Anweisungen
> führen nicht zu Abstürzen, sondern zu wohldefinierten Fehlermeldungen:

Wenn Dir zu Scheme und Tax ein paar interessante Links begegnet sind,
koenntest Du die mal hier posten?

Gruss,

Lars

--
Bekaempft gefaelligst die Kinderficker, und nicht das Internet.
Andreas Bogk in <y8au369...@horten.artcom.de>

Sascha Ziemann

unread,
Jun 20, 1998, 3:00:00 AM6/20/98
to

Lars Brandt <l...@gmx.net> writes:

| Wenn Dir zu Scheme und Tax ein paar interessante Links begegnet sind,
| koenntest Du die mal hier posten?

ftp://ftp.red-bean.com/pub/guile/
http://www.red-bean.com/pub/guile/

Ein brauchbares Buch ist:
Springer, Friedman: Scheme and the Art or Programming.

--
http://www.ping.de/sites/aibon/

Jens Theisen

unread,
Jun 20, 1998, 3:00:00 AM6/20/98
to

Sascha Ziemann wrote:
>Was ist denn an Perl einfach?

Das war doch nur ironisch gemeint, Perl ist eigentlich recht umfangreich
(recht unverständlich). :-)

>($op = shift) || &usage;
>if ($op eq "-n") {
> $show = $op;
> ($op = shift) || &usage;
>}
>if (!@ARGV) {
> @ARGV = <STDIN>;
> chop(@ARGV);
>}
>
>for (@ARGV) {
> next unless -f $_;
>
> $was = $_;
> eval $op;
> die $@ if $@;
>
> if ($was ne $_) {
> if ($show) {

Hä? :-)

Karsten Tinnefeld

unread,
Jun 20, 1998, 3:00:00 AM6/20/98
to

Jens Theisen wrote:
> >Was ist denn an Perl einfach?
>
> Das war doch nur ironisch gemeint, Perl ist eigentlich recht umfangreich
> (recht unverständlich). :-)

Kommt darauf an. Als Alternativen würde ich Tcl und Python anbieten
(http://www.scriptics.com/, http://www.python.org). Umfangreich heißt
doch, daß man was mit anfangen kann. Weniger umfangreich ist
command.com, oder auch präcompilierte bash's für Win32 (ja, so etwas
gibts, z.B. mit Compiler und Posix-Gesocks unter
http://www.cygnus.com/misc/gnu-win32/).

> > die $@ if $@;
> Hä? :-)
Stirb langsam, wenn noch Argumente über sind ...

--
Karsten Tinnefeld <ti...@kati.ping.de> (endlich konfiguriert ...)

,,Habe Vertrauen, das bis zum Morgen geht. Die Sonne geht alleine auf.``

Florian Frank

unread,
Jun 20, 1998, 3:00:00 AM6/20/98
to

In ping.general Sascha Ziemann <s...@aibon.ping.de> wrote:
>j...@jth.ping.de (Jens Theisen) writes:

>| Perl ist aber vielleicht ein bischen sehr einfach. :-)

>Was ist denn an Perl einfach? Der Umfang der Syntax wird ja wohl wenn
>überhaupt nur noch von Ada oder ähnlichem Zeug getoppt. Willst du
>sowas einem Anfänger anbieten:

Noe, allerdings ist es ja (ausser wenn man es auf die Spitze treiben
will) keine Kunst aus einem Programm in beliebiger Sprache
Spaghetti-Code zu machen. Bei Perl ist es ja gerade so toll, dass
man entweder eine schnellen Hack, einen Einzeiler oder auch ein
"serioeses" Programm schreiben kann: There's more than one way to do
it!

Wenn ein Programme mehr zu sein beginnt als ein quick'n dirty Hack,
solltest du es in Sub-Routinen zerlegen, lokale Variablen mit "my"
einfuehren, einige Parameter und Befehl fuer's Strikte einfuehren, um
etwaige Unsauberkeiten zu erkennen. Dann steigt man auch nach einer
Weile noch durch seine Hirngeburt durch...

Dein gekoepftes Programmbeispiel (eine Mutante des rename-Skripts aus
der alten Auflage des Kamelbuchs?) wuerde ein "-w" (oder sogar ein
"-T") oder ein "use strict;" nicht ohne Probleme ueberleben. Fuer Perl
gibt es uebrigens ein Modul mit Getopt-Routine, so dass man das nicht
jedesmal selbst verwursten muss.

Und jetzt nenne mir mal jemand eine Programmiersprache, in der man
solche tollen Gedichte schreiben kann, die auch noch lauffaehig
sind: :-)))

#!/usr/bin/perl

APPEAL:

listen (please, please);

open yourself, wide;
join (you, me),
connect (us, together),

tell me.

do something if distressed;

@dawn, dance;
@evening, sing;
read (books, $poems, stories) until peaceful;
study if able;

write me if-you-please;

sort your feelings, reset goals, seek (friends, family, anyone);

do*not*die (like this)
if sin abounds;

keys (hidden), open (locks, doors), tell secrets;
do not, I-beg-you, close them, yet.

accept (yourself, changes),
bind (grief, despair);
require truth, goodness if-you-will, each moment;

select (always), length(of-days)

# listen (a perl poem)
# Sharon Hopkins
# rev. June 19, 1995

--
USER PID %CPU %MEM SIZE RSS TTY STAT START TIME COMMAND

rc5 316 90.4 0.3 1032 340 ? R N 16:29 270:30 ./rc5des

Jens Theisen

unread,
Jun 21, 1998, 3:00:00 AM6/21/98
to

Karsten Tinnefeld wrote:
>> Hä? :-)
>Stirb langsam, wenn noch Argumente über sind ...

Wenn Du mal bitte beachten würdest, daß ich ein ":-)" hinter all meine
Ausführungen gesetzt habe. Perl ist eine für ihren Aufgabenbereich
unwahrscheinlich mächtige Sprache. Ich kann sie zwar nicht, aber bin mir
sicher, daß es sehr nützlich wäre, Perl zu beherschen. Aber zur Qualität
von Perl habe ich mich in keinster Weise geäußert. Ich wollte nur
anmerken, daß Perl, im Gegensatz dazu, was ursprünglich gesucht war, nicht
einfach ist (oder bist Du da etwa anderer Ansicht?). Warum Du mich deshalb
gleich angreifst, ist mir nicht ganz klar.
Allmählich habe ich wirklich genug davon, für ganz neutrale oder
scherzhaft gemeinte (und so gekennzeichnete) Aussagen gleich von
irgendwelchen Leuten angefeindet zu werden.

Sascha Ziemann

unread,
Jun 21, 1998, 3:00:00 AM6/21/98
to

Florian Frank <fl...@nixe.ping.de> writes:

| Noe, allerdings ist es ja (ausser wenn man es auf die Spitze treiben
| will) keine Kunst aus einem Programm in beliebiger Sprache
| Spaghetti-Code zu machen.

Ne es ging nicht um Spagetti-Code. Schließlich waren das ja nur ein
paar Zeilen. Sondern um den Umfang der Syntax. Damit man in Perl
anfangen kann muß man erst mal z.B. erst mal den Unterschied zwischen
%foo, $foo und @foo erklärt bekommen. In Sprachen mit weniger Syntax
braucht man das nicht. Je mehr Syntax, desto mehr gibts zu lernen und
desto länger dauert es, wenn jemand einsteigen will. Das heißt, Perl
lohnt sich nur, wenn man nach der Hürde der Lernerei wirklich viel
danach damit macht.

--
http://www.ping.de/sites/aibon/


Karsten Tinnefeld

unread,
Jun 21, 1998, 3:00:00 AM6/21/98
to

Jens Theisen wrote:
> Karsten Tinnefeld wrote:
> >> Hä? :-)
> >Stirb langsam, wenn noch Argumente über sind ...

Hallo Jens,

leider begreife ich erst langsam, das der Umgangssprachton hier etwas
rauher ist, als ich eigentlich akzeptabel finde und als normal erachten
würde. Obige Bemerkung war ein SCHERZ über eine für den deutschen
Sprachgebrauch sinnlos bis grausam erscheinende Eigenart der Sprache
Perl: daß man Skripte mit dem Befehl "die" verlassen kann. Also ist es
offensichtlich notwendig, mit derartigen Äußerungen noch vorsichtiger
vorzugehen und Sinnlosigkeiten nur noch in <Skuril/Tags/ einzukleiden.

Ich konnte einmal Perl, sprich: habe mir mal das Buch durchgelesen und
ein paar Sachen ausprobiert, und bin sicher, wenn ich es bräuchte,
könnte ich es mir leicht wieder beibringen. Meine Argumentation lautet
eher: wegen der starken Ähnlichkeit zur Shellscript-Syntax ist perl in
den Grundzügen leicht erlernbar, während man sich Erweiterungen, die
vielen Bibliotheken etc. bei Gebrauch nebenbei beibringen kann, also
eigentlich genau das lernen muß, was man braucht.

Karsten Kleffmann

unread,
Jun 21, 1998, 3:00:00 AM6/21/98
to

Hallo.

Leider bin ich erst jetzt dazu gekommen, hier nachzuschauen, was aus
meiner kleinen Anfrage nach einer "einfachen Scriptsprache" geworden
ist. Sappalot!
Aber erstmal vielen Dank für die Tips. Hab' 'nen ersten Blick auf die
Vorschlaege geworfen und einiges dazugelernt, insbesondere was passiert,
wenn man seine Anfrage nicht konkret genug formuliert (Was heisst
EINFACH und FÜR WIN95). Was ich suchte war folgendes: Ich moechte
innerhalb der Windows-Umgebung mit Hilfe einfacher Befehle
Windows-Fenster oeffnen, schliessen, deren Text und Schaltflaechen
bestimmen, Dateien loeschen, Programme starten etc. Und unter "einfachen
Befehlen" verstehe ich sowas wie z.B. die Batch-Befehle unter DOS oder
BASIC usw. Das wuerde mir absolut reichen (Hoffentlich werde ich jetzt
nicht allzu schraeg angeguckt von wegen "praecompilierte bash's ... mit
Compiler und Posix-Gesocks").
-Schluck- :-)
Wenn also wer was weiss... Ideal ist natürlich Freeware.
Aber ganz umsonst waren einige Tips trotzdem nicht. Hab' mit Peal
besorgt, und wenn ich mal Zeit und Ruhe habe...
Bis denn

Karsten


Florian Frank

unread,
Jun 21, 1998, 3:00:00 AM6/21/98
to

In ping.general Sascha Ziemann <s...@aibon.ping.de> wrote:
>Florian Frank <fl...@nixe.ping.de> writes:

>| Noe, allerdings ist es ja (ausser wenn man es auf die Spitze treiben
>| will) keine Kunst aus einem Programm in beliebiger Sprache
>| Spaghetti-Code zu machen.

>Ne es ging nicht um Spagetti-Code. Schließlich waren das ja nur ein
>paar Zeilen. Sondern um den Umfang der Syntax. Damit man in Perl
>anfangen kann muß man erst mal z.B. erst mal den Unterschied zwischen
>%foo, $foo und @foo erklärt bekommen. In Sprachen mit weniger Syntax

Nein, man muss eben nicht das alles erklaert bekommen. Du kannst es ja
auch einfach unterlassen, Hash-Datenstrukturen, Stack- und
Queueeigenschaften zu benutzen, und die @foos als ganz normale Arrays
benutzen. Andere Sprachen unterstuetzen diese Moeglichkeiten aber
nicht so beilaeufig wie es Perl tut. Die Folge ist, dass du dir selbst
was stricken musst, oder eine Library dafuer benutzen musst, so dass
die Einheitlichkeit und Eleganz verloren geht. Und von der
hervorragenden Einbindung von regulaeren Ausdruecken in Perl haben wir
ja noch gar nicht gesprochen...

>braucht man das nicht. Je mehr Syntax, desto mehr gibts zu lernen und
>desto länger dauert es, wenn jemand einsteigen will.

Du sagst also, wenn jemand nicht saemtliche, Vokabeln, klassischen
Redefiguren, Nebensatzkonstruktionen, usw. beherrscht, kann er gar
nicht sprechen. Ich glaube, dass diese Bedingung selbst in
abgeschwaechter Form nur auf eine verschwindend kleine Minderheit der
deutschen Sprechergemeinschaft zutrifft und dennoch sprechen die
anderen doch wohl auch deutsch, oder?

>Das heißt, Perl
>lohnt sich nur, wenn man nach der Hürde der Lernerei wirklich viel
>danach damit macht.

Das kann ich irgendwie nicht nachvollziehen. Ich finde es viel
interessanter, einfach mal damit anzufangen und sich die Skripts
spaeter noch'mal anzuschauen. Da merkt man schon, dass das zwar vorher
gut funktionierte, dass man es aber so und so viel geschickter machen
koennte. Die Lernkurve ist also wesentlich flacher, als du es hier
beschreibst.

--
USER PID %CPU %MEM SIZE RSS TTY STAT START TIME COMMAND

rc5 274 94.9 0.4 1032 392 ? R N 15:14 358:58 ./rc5des

Jens Theisen

unread,
Jun 22, 1998, 3:00:00 AM6/22/98
to

Karsten Tinnefeld wrote:
>Jens Theisen wrote:
>> Karsten Tinnefeld wrote:
>> >> Hä? :-)
>> >Stirb langsam, wenn noch Argumente über sind ...

Entschuldige bitte vielmals, ich habe Dich falsch verstanden. Ich hatte
Deine Aussage nicht als Übersetzung sondern als Kommentar verstanden.

Ralf Huels

unread,
Jun 22, 1998, 3:00:00 AM6/22/98
to

Karsten Kleffmann <A.I...@ping.de> writes:

> Was ich suchte war folgendes: Ich moechte
> innerhalb der Windows-Umgebung mit Hilfe einfacher Befehle
> Windows-Fenster oeffnen, schliessen, deren Text und Schaltflaechen
> bestimmen, Dateien loeschen, Programme starten etc. Und unter "einfachen
> Befehlen" verstehe ich sowas wie z.B. die Batch-Befehle unter DOS oder
> BASIC usw.

Ich versteh' nich' die Bohne von Windows, aber in der neuen c't
(13/98) wird ein Feature von Win98 beschrieben, das sich Windows
Scripting Host WSH nennt. Lies die Box auf Seite 95. Vielleicht ist
das was für Dich!?

HTH,
Ralf

--
Ralf H"uls | The only way to get rid of a
spa...@teleute.ping.de | temptation is to yield to it.
|
http://www.ping.de/sites/teleute/ | Oscar Wilde

0 new messages