ahstax
Goto Top

Batch für NetSend mit Variablenübergabe

Mit einer Batch soll erst der Empfänger und dann der Nachrichtentext einer Nachricht abgefragt werden, die mittels NetSend verschickt wird.

Mit den Worten von Howard Carpendale:

Hello Eugen!


Mit dem nachfolgenden Code würde ich gerne die NetSend-Funktion ein wenig schmucker machen. Das funktioniert auch soweit, wäre da nicht das Problem, dass man gelegentlich mehr als nur ein Wort als Nachricht versenden möchte. Dann nämlich bricht die Abarbeitung des Codes aprubt ab... Doof, wie man sich vorstellen kann.

Ich hab dann auch versucht, den Nachrichtentext erst mal in eine TXT-Datei umzulenken... Aber irgendwie... Es klappt nicht... face-sad

Weiß jemand Rat?
Vielen herzlichen Dank schon jetzt!!!!

Grüße,
Andreas face-wink


@echo off &setlocal

echo.
echo Diese Batch versendet eine Mitteilung an eine zu waehlende Person.
goto :EingabeEmpfaenger

:LeereEingabeEmpfaenger
echo.
echo Es wurde eine ungueltige Eingabe vorgenommen.

:EingabeEmpfaenger
echo.
set /p Empfaenger=Bitte Empfaengerkuerzel eingeben ([x] Abbrechen):
cls

If %Empfaenger%x==x Goto :LeereEingabeEmpfaenger
If %Empfaenger%==x Goto :Abbruch
goto :EingabeNachricht

:LeereEingabeNachricht
echo.
echo Es wurde eine ungueltige Eingabe vorgenommen.

:EingabeNachricht
echo.
set /p Nachricht=Bitte Nachrichtentext an %Empfaenger% eingeben ([x] Abbrechen):
cls
If %Nachricht%x==x Goto :LeereEingabeNachricht
If %Nachricht%==x Goto :Abbruch

net send %Empfaenger% %Nachricht%(%Username%, %date%, %time:~0,5%Uhr)
goto :Ende

:Abbruch
net send %username% Abbruch durch Anwender.

:Ende

Content-Key: 159602

Url: https://administrator.de/contentid/159602

Printed on: April 26, 2024 at 09:04 o'clock

Mitglied: 60730
60730 Jan 27, 2011, updated at Oct 18, 2012 at 16:45:39 (UTC)
Goto Top
moin,

das typische Problem...

  • Gegenfrage: Wie steuerst du einen befehl wie z.B Net Send?
Durch Parameter?
Wie unterscheidet Window einzelne Parameter voneinander?
Ergo fass die durch ein Leerzeichen getrennten Wörter - die als ein parameter durchgehen sollen - in "Gänse füßchen"...


Gruß
Member: Skyemugen
Skyemugen Jan 27, 2011 at 15:26:45 (UTC)
Goto Top
Aloha,

Die beiden  in Zeile 31 ... sollten die mal was darstellen?

greetz André
Member: ahstax
ahstax Jan 27, 2011 at 15:33:25 (UTC)
Goto Top
@Skyemugen:
Die beiden  sind eigentlich Zeilenumbuchzeichen, die man erhält, wenn man den Code im DOS-Editor bearbeitet und dort STRG+T drückt.

@timobeil
Irendwie verfolgen mich diese miesen, kleinen Gänsefüschen... ts...
Setze ich die in diesem Fall so (Zeilen 5, 6, 8):

:EingabeNachricht
echo.
set /p Nachricht=Bitte Nachrichtentext an %Empfaenger% eingeben ([x] Abbrechen):
cls
If "%Nachricht%"x==x Goto :LeereEingabeNachricht  
If "%Nachricht%"==x Goto :Abbruch  

net send %Empfaenger% "%Nachricht%"(%Username%, %date%, %time:~0,5%Uhr)  
goto :Ende
Mitglied: 60730
60730 Jan 27, 2011 at 15:40:10 (UTC)
Goto Top
Zitat von @ahstax:
@timobeil
Irendwie verfolgen mich diese miesen, kleinen Gänsefüschen... ts...
Setze ich die in diesem Fall so (Zeilen 5, 6, 8):

eher ungetestet so:

:EingabeNachricht
echo.
set /p Nachricht=Bitte Nachrichtentext an %Empfaenger% eingeben ([x] Abbrechen):
cls
If /i "%Nachricht%"=="" Goto :LeereEingabeNachricht  
If "%Nachricht%"=="x" Goto :Abbruch  
 
net send %Empfaenger% "%Nachricht%" (%Username%, %date%, %time:~0,5%Uhr)  
goto :Ende

und das andere...
set /p Empfaenger=Bitte Empfaengerkuerzel eingeben ([x] Abbrechen): 
net user /domain |find /i "%Empaenger%" || echo den User gibts nicht & goto EingabeEmpfaenger  

Gruß
Member: ahstax
ahstax Jan 27, 2011 at 15:49:15 (UTC)
Goto Top
Cool... funktioniert...!

Jetzt noch ne Frage, die nicht zur Überschrift aber zur Aufgabe passt...:
Kann ich statt [x] als Abbruchparameter auch die [ESC]-Taste abfragen? Wie?
Member: Biber
Biber Jan 27, 2011 at 16:07:27 (UTC)
Goto Top
Moin ahstax,

Zitat von @ahstax:
Kann ich statt [x] als Abbruchparameter auch die [ESC]-Taste abfragen? Wie?
Du kannst doch aber bei einer "SET /P"-Eingabe nach meinen vorläufigen Tests ca. 67433x die [ESC]-Taste drücken,
ohne dass sich das Bild auf dem Monitor entscheidend verändert.

Ab dem 67434sten Mal brennt es sich bei Billig-Plasma-Monitoren langsam etwas ein.

Aber das merken doch auch deine UserInnen und hören irgendwann auf, es zu versuchen.

Also vergiss es auch.

Grüße
Biber
Member: ahstax
ahstax Jan 27, 2011 at 16:14:36 (UTC)
Goto Top
Ich hoffe wirklich, dass der Test keine Spuren an Deinem Monitor hinterlassen haben...!! face-wink

Ich entnehme Deiner Antwort, dass die [ESC]-Taste wohl keinen abfragbaren Wert übergibt... Schade... Wäre auch zu schön gewesen...