- ベストアンサー
バッチでメッセージを送るには?
net sendを利用して複数端末にメモ帳(.txt)に書いた内容を読込んでメッセージを送りたいです。 たぶん読込んだ内容を改行するのが難しいと思います。 どうか教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
複数に送りたいとのことですが、単純に strSendTo = "Machine1" を strSendTos = Array("Machine1", "Machine2") に変えて WshShell.Run "net send " & strSendTo & " " & strLine を For Each strSendTo In strSendTos WshShell.Run "net send " & strSendTo & " " & strLine Next のように、配列の中をひとつずつ送ればいいと 思いますが、どうでしょう?
その他の回答 (3)
- togino
- ベストアンサー率75% (97/129)
Word や Excel で実行って意味がわからないんですが、 下記の内容でテキストファイルを作成し、その ファイル名を netsend.vbs という名前にして ・ コマンドプロンプトで netsend.vbs message.txt と入力して実行 (message.txt は送信したい内容を書いたテキストファイルの名前) ・ あるいは、送信したい内容を書いたテキストファイルを ドラッグアンドドロップで netsend.vbs というファイルの上に落とす すればいいわけです。 ただし、先頭の strSendTo = "" はそちらの環境に合わせて変えてください うまくいかなければ、その旨書いてくださいね
- togino
- ベストアンサー率75% (97/129)
VBS のソースを書いて投稿したのですが、 投稿後、質問画面に戻っても回答が消えてしまっています。 ただ、さらに回答を追加しようとすると、入力画面の 下に前回投稿した内容が現れるのですが・・・??? この回答欄に使ってはいけない文字の組み合わせとか ありましたっけ?
補足
訂正:word2003ではなくexcel2003でした。 すいません。
- togino
- ベストアンサー率75% (97/129)
こんなのはどうでしょう strSendTo = "MachineName" Set objArgs = WScript.Arguments Set objFS = WScript.CreateObject("Scripting.FileSystemObject") Set WshShell = WScript.CreateObject("WScript.Shell") If objArgs.Count = 0 Then strFileName = InputBox("メッセージ内容を書いたテキストファイルの名前を入れてください") Else strFileName = objArgs(0) End If Set objFileInput = objFS.OpenTextFile(strFileName, 1) strLine = "" Do Until objFileInput.AtEndOfStream strLine = strLine & objFileInput.ReadLine & Chr(20) Loop objFileInput.Close WshShell.Run "net send " & strSendTo & " " & strLine このプログラムを netsend.vbs という名で保存します。 先頭の strSendTo には、net send の送り先第1引数を 代入してください。 netsend.vbs message.txt とすれば、message.txt の中身を改行を処理して net send に送り込みます。
補足
さっそくありがとうございます。 word2003で実行しますと”実行エラー424 オブジェクトが必要です。”と出ます。 >netsend.vbs message.txt これはmessage.txtの名前変更してnetsend.vbsも付け足す ことですか? すいませんが教えてください。
お礼
複数PCに送信したい場合は strSendTo = ""に台数分記述するのですか? 調べても記述がわかりません。 いい方法はあれば教えてください。 よろしくおねがいします。
補足
勘違いしていました。できましたありがとうございます。 複数PCに送る場合はどのように書き直せばよろしいですか?