Zeilenumbrüche in net send Nachrichten
JO JOE
- programmiertechnik
Wer weiß, wie man in net send Nachrichten Zeilenumbrüche verwendet?
Brauchbare Lösungen habe ich bisher leider nicht gefunden :(
Wär cool von euch, wenn ihr mir helfen könntet.
Jo JOE
Hallo,
Wer weiß, wie man in net send Nachrichten Zeilenumbrüche verwendet?
Brauchbare Lösungen habe ich bisher leider nicht gefunden :(
Ich habs mal gard aus cmd heraus versucht, dort ist es scheinbar nicht möglich einen Parameter anzugeben, der einen Zeilenumbruch verwendet. Wenn man sich einer besseren shell bedient, dann funktioniert es:
__Cygwin (shell: bash
)__________________________________
/ \
| Stefan@stefan ~ |
| $ net send stefan "Hallo, |
| > |
| > wie gehts? |
| > |
| > Ciao." |
| Die Nachricht wurde erfolgreich an STEFAN gesendet. |
\__________________________________________________________/
Viele Grüße,
Stefan
Hallo!
Wie bediene ich mich denn der besseren Shell?
Und dann noch eine Frage (da du dich in DOS gut auszukennen scheinst):
Eine Schlafe in einer Batch-Datei ähnlich wie for (i=1;i<=10;i++) gibt es wohl nicht, oder? Bisher habe ich es nur geschafft, die Anzahl der durchgänge so anzugeben:
for %%var in (1 2 3 4 5) do BEFEHL
Das wird dann 5-mal ausgeführt.
Und:
Wie kann ich eine Batch-Datei so programmieren, dass sie durch
batch.bat -wert
übergebene Werte in eine Variable einliest?
Hallo,
Wie bediene ich mich denn der besseren Shell?
Die bash Shell ist auf Unix ähnlichen System wie z.B. auch Linux eine sehr verbreitete Shell. Du kannst sie aber auch unter Windows verwenden, dafür existiert das Cygwin[1] Projekt, welches die Verwendung von vielen Programmen aus der Unix Welt unter Windows ermöglicht.
Auf der Homepage findest du auch die Installationsroutine für Cygwin, damit kannst du dir z.B. die bash auf deinen Rechner holen.
Eine Schlafe in einer Batch-Datei ähnlich wie for (i=1;i<=10;i++) gibt es wohl nicht, oder?
Doch, die existiert auch:
Durchlaufen eines Wertebereichs
Verwenden Sie eine iterative Variable, um den Anfangswert (Anfang#) anzugeben und anschließend einen bestimmten Wertebereich zu durchlaufen, bis der Endwert (Ende#) erreicht wird. /L führt die Iteration aus und vergleicht dabei Anfang# mit Ende#. Solange Anfang# kleiner als Ende# ist, wird der Befehl ausgeführt. Wenn die iterative Variable Ende# überschreitet, verlässt die Eingabeaufforderung die Schleife. Sie können auch mit einem negativen Wert für Schritt# einen Wertebereich in abfallender Reihenfolge durchlaufen. (1,1,5) generiert beispielsweise die Sequenz 1 2 3 4 5 und (5,-1,1) generiert die Sequenz (5 4 3 2 1). Für diesen Befehl gilt die folgende Syntax:
for /L {%% | %}Variable in (Anfang#,Schritt#,Ende#) do Befehl [Befehlszeilenoptionen]
Wie kann ich eine Batch-Datei so programmieren, dass sie durch
batch.bat -wert
Die Parameter mit denen eine Batchdatei aufgerufen wird stehen automatisch in den Variablen %1 bis %9 (oder %%1, da bin ich mir nicht so sicher) zur Verfügung.
Wenn du dir Cygwin installiert hast, dann kannst du dich aber auch mal mit dem Unix Pendant zu Batch Dateien befassen. Die Bash Shell bringt eine eigene sehr mächtige Scriptingsprache mit, wenn du dich damit mal angefreundet hast, dann wirst du mit Batchdateien nichts mehr zu tun haben wollen, da dir die Shellscripts in Zusammenarbeit mit vielen kleinen Hilfsprogrammen viel mehr Möglichkeiten bieten.
Viele Grüße,
Stefan
Danke nochmal für die Antwort! Du hast mir weitergeholfen!
Vielleicht darf ich aber doch noch 2 Fragen stellen:
1. Wie programmiere ich es, dass das Programm auf eine Eingabe vom Nutzer wartet. Ich habe es jetzt so gelöst, dass bestimmte Werte per Parameter übergeben werden? Nun möchte ich aber, dass dort steht:
Geben Sie xxx ein:
Und dann kann der Benutzer etwas eingeben, was schließlich durch eine Variable abrufbar ist.
2. Wie prüfe ich, ob bestimmte erwartete Parameter übergeben werden? Wenn der Benutzer die Datei ohne Parameter aufruft, dann soll eine Meldung erscheinen. Ich habe es bisher durch:
if not exist %1
versucht, aber das scheint nicht zu funktionieren.
Danke!
hi Jo JOE!
- Wie programmiere ich es, dass das Programm auf eine Eingabe vom Nutzer wartet.
kommt auf dein betriebssytem und deine beduerfnisse an. das tool fuer auswahlmenues choice.exe gibt es standardmaessig iirc bei windows bis 98 bzw. bis NT 4. ab windows 2000 nicht mehr.
aaaber, fuer win2k+ gibts u.a. folgende moeglichkeiten:
a) einfach altes choice.exe (z.b. von NT 4) verwenden,
b) im internet danach suchen und es sich runterladen,
c) selbst ein entsprechendes tool (z.b. in C/C++) schreiben oder
d) ms windows 2000 resource kit kaufen
bei b) weiss ich allerdings nicht, ob das legal ist.
wenn du allerdings die moeglichkeiten eines auswahlmenues zu beschraenkt sind, d.h. falls der user in jedem fall eine folge von zeichen eingeben soll, dann empfiehlt es sich wohl, ein entsprechendes tool selbst zu basteln (z.b. in C/C++).
- Wie prüfe ich, ob bestimmte erwartete Parameter übergeben werden? Wenn der Benutzer die Datei ohne Parameter aufruft, dann soll eine Meldung erscheinen. Ich habe es bisher durch:
if not exist %1
versucht, aber das scheint nicht zu funktionieren.
%1 wird durch den uebergebenen parameter ersetzt. falls kein parameter uebergeben wird wird %1 eben durch eine leere zeichenfolge ersetzt. somit kannst du also eine abfrage wie folgt gestalten:
if "%1" == "" goto fehler
oder, was ich auch schon gesehen habe:
if %1/==/ goto fehler
prinzipiell ist es wohl ziemlich wurscht, wie die abfrage aussieht, nur
if %1== goto fehler
liefert einen syntaxerror.
prost
seth
Hallo!
Danke, auch das hat mir weitergeholfen!
Nun ist meine hoffentlich letzte Frage, wie ich Parameter übergeben kann, die Leerzeichen enthalten?
z.B.: datei.bat parameter mit leerzeichen
Im Programm möchte ich dann in der Variablen %1 parameter mit leerzeichen stehen haben. Geht das überhaupt?
Danke euch!
hi Jo JOE!
wie ich Parameter übergeben kann, die Leerzeichen enthalten?
einfach in doppelte anfuehrungszeichen einschliessen:
befehl "erster parameter" zweiter "dritter parameter (mit mehreren leerzeichen)"
prost
seth
Das klappt leider nicht.
In meinem Programm lasse ich wiederum ein Programm aufrufen, dass einen Parameter erwartet. Dieser erwartete Parameter wird zuvor an mein Programm als Parameter übergeben. Wenn ich den Parameter in Anführungszeichen setze, dann hilft es nicht weiter. Es gibt einen Syntaxfehler.
hi Jo JOE!
In meinem Programm lasse ich wiederum ein Programm aufrufen, dass einen Parameter erwartet.
sind bei dir alle "Programme" batch-dateien?
Dieser erwartete Parameter wird zuvor an mein Programm als Parameter übergeben. Wenn ich den Parameter in Anführungszeichen setze, dann hilft es nicht weiter.
wenn du aufrufst
file1.bat "param1 bla"
dann kannst du in file1.bat folgenden aufruf starten:
file2.bat %1
bzw.
call file2.bat %1
ohne weitere anfuehrungszeichen zu verwenden.
vielleicht hilft dir auch ja auch schon
call /?
aber so ganz habe ich dich wohl noch nicht verstanden.
finde es zwar gut, dass du versuchst, dein problem abstrakt/allgemein zu beschreiben, aber vielleicht ist es nun doch besser, wenn du ein paar details beschreiben wuerdest. ;-)
prost
seth
hi Jo JOE!
- Wie programmiere ich es, dass das Programm auf eine Eingabe vom Nutzer wartet.
hab erst jetzt herausgefunden, dass SET mittlerweile ganz viele tolle sachen kann, z.b. benutzereingaben in variablen speichern.
set /p variablenname=
fuer weitere infos dazu, einfach mal
set /?
eingeben.
prost
seth