lukid20
Goto Top

Batch Datei mit MSG Befehl

Hallo Zusammen

Ich habe ein kleines Problem und komme nicht weiter, da ich mit CMD Befehle nicht erfahren bin.

Ich will eine MSG Nachricht absetzen, dass an alle Computer in einer .txt Datei schickt.
Bis jetzt habe ich folgendes zusammen aber mir fehlt irgendwie noch eine Schleife die abarbeitet wird.

set /p nachricht=Nachricht eingeben:
set /p computerliste=%CD%\computer.txt
msg * /SERVER:%computerliste%.fmgruppe.ch %nachricht%

Danke für eure Hilfe

mfg luki

Content-Key: 218504

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

Printed on: April 19, 2024 at 02:04 o'clock

Member: rookie
rookie Oct 04, 2013 at 09:57:35 (UTC)
Goto Top
Hi,

am Besten mit einer FOR-Schleife:

set /p nachricht=Nachricht eingeben:
for /f %f in (Computerliste.txt) do
msg * /SERVER:%f.fmgruppe.ch %nachricht%

So in etwa müsste das dann aussehen.
Member: rubberman
rubberman Oct 04, 2013 at 10:09:05 (UTC)
Goto Top
Hallo lukid20.

Frage vorab: Funktioniert für dich der MSG Befehl remote überhaupt? Das heißt, sind die entsprechenden Registryeinstellungen auf jedem involvierten Rechner durchgeführt?

Grüße
rubberman
Member: lukid20
lukid20 Oct 04, 2013 at 10:19:50 (UTC)
Goto Top
Hallo, ja das habe ich alles schon gemacht und funktioniert face-smile
Member: rubberman
rubberman Oct 04, 2013 updated at 10:49:00 (UTC)
Goto Top
Hallo lukid20,

leider kann ich es nicht testen, da auf meiner "Starter" Version MSG gar nicht erst verfügbar ist ...

Mit @filename kannst du die Datei spezifizieren. Da du die Batchdatei vermutlich als Admin ausführen musst, bietet sich %~dp0 statt %cd% an, um den Pfad zur Datei korrekt rüber zu bekommen.
Etwa so:
@echo off &setlocal
set /p "nachricht=Nachricht eingeben: "  
set  "computerliste=%~dp0computer.txt"  
msg @"%computerliste%" /SERVER:ServerAnDemDieComputerHängen "%nachricht%"  
Grüße
rubberman
Member: lukid20
lukid20 Oct 04, 2013 at 11:14:00 (UTC)
Goto Top
Ok danke für deine Antwort.

Habe es versucht aber hat nocht nciht ganz geklappt.
Ich habe es noch so angepasst:

@echo off &setlocal


set /p "nachricht=Nachricht eingeben: "
set "computerliste=%~dp0computer.txt"
msg * /SERVER:@"%computerliste%".fmgruppe.ch "%nachricht%"

Aber von wo weis der Befehl, dass er diesen Befehl für jede Zeile (in der computer.txt Datei) einmal ausführen muss?
Member: rookie
rookie Oct 04, 2013 at 11:21:51 (UTC)
Goto Top
Hast du meine Antwort nicht gelesen?
Member: lukid20
lukid20 Oct 04, 2013 at 11:34:30 (UTC)
Goto Top
Doch gerade eben, das klappt so weit auch. Danke!

Nur habe ich noch ein kleines Problem:

wenn ich es im CMD direkt eingebe funktioniert es.
for /f %f in (Computer.txt) do msg * /SERVER:%f.fmgruppe.ch test

In der Batch Datei leider noch nicht:
@echo off &setlocal
set /p "nachricht=Nachricht eingeben: "
for /f %f in (computer.txt) do
msg * /SERVER:%f.fmgruppe.ch %nachricht%

mache ich noch etwas falsch?
Member: rookie
rookie Oct 04, 2013 at 11:38:20 (UTC)
Goto Top
Schalte mal das Echo wieder ein und lass dir die Ausgaben in eine Datei schreiben: deinebat.bat > ausgabe.txt

In der ausgabe.txt siehst du dann was eigentlich passiert, wenn deine Batch läuft.
Member: rubberman
rubberman Oct 04, 2013 updated at 11:44:51 (UTC)
Goto Top
Du hast doch bestimmt in einer Shell mit Admin Rechten getestet, oder?
Im Batch dann
<code type="plain>
for /f "usebackq" %%f in ("%~dp0computer.txt") do msg * /SERVER:%%f.fmgruppe.ch %nachricht%

... da der Batch in System32 ausgeführt wird und deine Textdatei nicht findet und die Prozentzeichen der FOR Variable verdoppelt werden müssen.

Grüße
rubberman
Member: lukid20
lukid20 Oct 04, 2013 at 11:53:31 (UTC)
Goto Top
Ok Super!! hat geklappt Danke vielmals face-smile
Member: lukid20
lukid20 Oct 04, 2013 updated at 12:00:45 (UTC)
Goto Top
Schlussendlich:

@echo off &setlocal


set /p "nachricht=Nachricht eingeben: "
for /f "usebackq" %%f in ("%~dp0computer.txt") do msg * /SERVER:%%f.fmgruppe.ch %nachricht%


Noch ein kleiner Tipp für die nächsten: Die Batch datei darf nicht msg heissen! Bsp. msg1 geht ;)

Danke!
Member: rubberman
rubberman Oct 04, 2013 at 12:13:01 (UTC)
Goto Top
Die Batch datei darf nicht msg heissen!
Kardinalsfehler face-wink
Konkret darf eine Batchdatei nie so heißen, wie einer der Befehle die darin verwendet werden (egal welcher).

Grüße
rubberman
Member: DerWoWusste
DerWoWusste Oct 04, 2013, updated at Oct 07, 2013 at 22:07:34 (UTC)
Goto Top
Und zum Abschluss: Deine Nachricht soll doch sicherlich so lange sichtbar sein, bis sie weggeklickt wird, oder? msg-Nachrichten schließen sich jedoch nach 30 Sekunden von alleine, es sei denn, man benutzt den Schalter /t:0