WSHを使いTELNETでファイルをデスクトップに複写する方法

このQ&Aのポイント
  • WSHを使ってTELNETで接続した相手のデスクトップにファイルを複写する方法について教えてください。
  • WSHを始めたばかりで、TELNETを使用して現在の相手のデスクトップにファイルを複写する方法を知りたいです。
  • カナ文字や%が正しく渡されていないようなので、WSHでTELNETを使用してファイルをデスクトップに複写するための設定方法を教えてください。
回答を見る
  • ベストアンサー

WSHを使いTELNETで%USEPROFILE%\デスクトップにファイルを複写したい

WSHをはじめたばかりです。TELNETで接続した現在の相手のデスクトップにファイルを複写させたいと考えています。 DOSのように指定したのですがカナ文字や%がうまく渡されていないようなのですがどのように設定すればよいか教えてください。 下記のように作成しています。 よろしくお願いします。 set WshShell = WScript.CreateObject("WScript.Shell") WshShell.AppActivate "確認" WScript.Sleep 1000 adr = InputBox("端末IPアドレスを入力してください。", 1) adr = "telnet " & adr & "~" rem telnet ホスト名 WshShell.SendKeys adr WScript.Sleep 2000 rem ユーザー名 WshShell.SendKeys "administrator~" WScript.Sleep 1000 rem パスワード WshShell.SendKeys "administrator~" WScript.Sleep 1000 rem コマンド WshShell.SendKeys "cd %USEPROFILE%\デスクトップ~" WScript.Sleep 3000 rem あとCOPYによる複写コマンドの記述

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

実際に試したわけでないので、SendKyesに関してだけ・ SendKeysで送る文字列のうち ^~%[] の文字は、特殊な意味がありますので、 これらの文字を送る場合{}で囲む必要があります。 例えば % の部分は {%} の様にしてください。

その他の回答 (2)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

>デスクトップの文字が字バケしてしまいました。 そうですね~ よく考えたら、 sendKeys は、キーストロークを模するものですから、日本語をそのまま送れませんね。 administratorで接続できるのだったら、 管理共有からデスクトップを開いて、ファイルのコピーをするのがいいかもしれません。

ganbaro
質問者

お礼

やはりそうでしたか。おっしゃるとおりやってみます。 大変助かりました。 ありがとうございました。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

#1で抜けがありましたので補足 + もでした あと{や}自体を送る場合も {{}のようにします。

ganbaro
質問者

補足

早速の回答ありがとうございます。 とりあえず%は指示とおりうまくいきました。 しかしデスクトップの文字が字バケしてしまいました。 こちらのほうはどうすればよいかサジェスチョンください よろしくお願いします

関連するQ&A

  • WSHスクリプトでブラウザ更新

    教えてください。 WSHスクリプトでブラウザの更新をF5ではなくてControl + Rしたいのです。 Set WshShell = WScript.CreateObject("WScript.Shell") WScript.Sleep 2000 WshShell.AppActivate "テスト" WScript.Sleep 2000 WshShell.SendKeys "^R" WScript.Sleep 2000 WScript.Echo "終了" 最初の一回目の実行時はできるのですが、それ以降更新してくれません。 よろしくお願いいたします。

  • Windows 7 でのWSH の挙動

    お世話になります。 msdnにある「電卓をアクティブにするサンプルを Vistaで実行すると、電卓がアクティブになり、 計算結果を吐き出しますが、 Windows7(Pro,SP1)で実行すると 最前面に電卓が出るものの アクティブになっていない上に、 複数の電卓がどんどん立ち上がってきます。 Vistaと7で、プロセス(?)の管理が 変わっているのだと思います。 7でも電卓をアクティブにするには、 どうすればいいのでしょうか? 以下コードです。 ================================================ set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run "calc" WScript.Sleep 100 WshShell.AppActivate "Calculator" WScript.Sleep 100 WshShell.SendKeys "1{+}" WScript.Sleep 500 WshShell.SendKeys "2" WScript.Sleep 500 WshShell.SendKeys "~" WScript.Sleep 500 WshShell.SendKeys "*3" WScript.Sleep 500 WshShell.SendKeys "~" WScript.Sleep 2500 ================================================

  • VBSのsendkeysで日本語を出力したいです

    WshShell.Run "explorer" WScript.Sleep 100 WshShell.AppActivate "explorer" WScript.Sleep 100 WshShell.SendKeys "C:\Users\Default\" WScript.Sleep 100 WshShell.SendKeys "デスクトップ" WScript.Sleep 100 WshShell.SendKeys "{ENTER}" WScript.Sleep 100 *.VBS ファイルに書き込んで、直接実行したいのですが、エラーになります。 どんなコマンドを足すといいのですか?

  • VBScript

    下記、プログラムを実行すると、コマンドプロンプトの画面が 消えずに、そのまま残ってしまいます。 どうしたら、画面を消すことができるでしょうか。 お力添えをお願いいたします。 Set WshShell = Wscript.CreateObject("WScript.Shell") Set WshEnv = WshShell.Environment("user") WshEnv("C:\NET\aaa.txt") = "administrator" Wshshell.Run("cmd.exe") WScript.Sleep(500) WshShell.SendKeys("runas /user:administrator " + chr(34) + "xcopy D:\NET\aaa.txt C:\NET\aaa.txt" + chr(34)) WshShell.SendKeys("{Enter}") WScript.Sleep(500) WshShell.AppActivate "C:\WINDOWS\system32\runas.exe" WshShell.SendKeys("XXXXX") WshShell.SendKeys("{Enter}") WScript.Sleep(500)

  • WSH 日本語ファイル名の認識

    こんにちは、WSHを業務使おうと考えております。 まだ始めたばかりで、いろいろ調べてはみたのですが、検索方法が悪いのか解消方法が見つかりません。 以下のスクリプトにてメール作成を自動化しようとしておりますが、日本語のファイル名、件名に日本語を使うと文字化け?してしまい、思ったようにうまくいきません。 そもそもSendKeysを使っているのが悪いのでしょうか ご教授いただけないでしょうか?よろしくお願いいたします。 set WshShell = WScript.CreateObject("WScript.Shell") 'メーラー立ち上げ' WshShell.Run "MSIMN.EXE" WScript.Sleep 5000 '新規メール作成' WshShell.SendKeys "%{F}" WshShell.SendKeys "N" WshShell.SendKeys "M" 'ファイル添付' WshShell.SendKeys "%{I}" WshShell.SendKeys "A" WshShell.SendKeys "C:\業務週報.xls" WshShell.SendKeys "%{A}" WshShell.SendKeys "ITODPC02@gmail.com" WshShell.SendKeys "{TAB 2}" WshShell.SendKeys "業務週報送信" WshShell.SendKeys "{TAB 2}" WshShell.SendKeys "今週の業務週報を送信します。" WshShell.SendKeys "%{F}" WshShell.SendKeys "{E}" 'メーラー終了' WshShell.SendKeys "%{F4}"

  • キー操作 (WSH:コピー&ペースト)

    ホームページ上のデータをクリップボードに取り込んで メモ帳に写したいです。 キー操作でのコピー&ペーストがうまくいきません。 どこがいけないのでしょうか(WSHを使ってます)。 set WshShell = WScript.CreateObject("WScript.Shell") WshShell.SendKeys "^A" '「Ctrl」を押しながら「A」を押す WshShell.SendKeys "^C" '「Ctrl」を押しながら「C」を押す WSHShell.Run "notepad.exe" 'メモ帳を開く WshShell.SendKeys "^V" '「Ctrl」を押しながら「V」を押す よろしくお願いします。

  • JP1からvbs(PSExec)が起動できない

    突然失礼します。 以下のサーバーAにあるvbsを、JP1から起動しようとしていますが、うまく起動しないので、もし原因が分かる方がいたら、ご教授願いたいです。 起動しようとしているサーバーAの「test.vbs」は、簡単に言うと、PsExecを利用して、サーバーBの「hoge.bat」を実行する内容です。 ***test.vbs*** Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run "PsExec.exe サーバーBIPアドレス -u 実行ユーザ -p 実行ユーザーパスワード cmd" WshShell.AppActivate "cmd " WScript.Sleep 3000 WshShell.SendKeys "cd C:\" WshShell.SendKeys "{enter}" WshShell.SendKeys "hoge.bat" WshShell.SendKeys "{enter}" WScript.Sleep 10000 WshShell.AppActivate "cmd" WshShell.SendKeys "exit" WshShell.SendKeys "{enter}" ************************ 上記バッチを手動で実行するとうまくいくのですが、 JP1で起動しようとすると、うまくいきません。 そもそもPsExecが実行出来ていないかも。。。。 宜しくお願いします。

  • WSHで自動化ソフトを作りたいけど、エクセルとの連携、エラー防止はどうすれば?

    以下の業務を自動をするために、WSHでプログラムを作っていますが、4点困っていることがあります。 ●●●業務内容●●● 1、業務のメールボックスをactivateする。 2、sendkeys("{Enter}")を使って、メールを開く。 3、AlTからEditツールのEDIT、を選択し、メールを編集状態にする。 4、CTRL+Fで、文字列検索。(「発表日」を検索します。) 5、「発表日」の下に発表される日時が8桁で表示されているので、sendkeysを使い、コピー。 6、業務に使うエクセルファイルをactivateする。 ■■ここでVBAを使いたいのですが、WSH内のプラグラム内で、VBAを入力することは可能でしょうか?■■ 7、エクセルファイルを開いたら、発表日がある列の空白セルのひとつにペースト。(上のセルから順にペーストしていくので、 i=1 activate.cells(F,i) i=i=1 do while i=10のようにコマンドするつもりです。) 8、業務のメールボックスを再びActivateする。 ■■(業務のメールボックスは新しいメールをタブでふぴじする仕組みになっているので、どうのようにActivateすればいいか困っています。)■■ 9、開いてあるメールを閉じる。(Sendkeysで閉じる予定です)(これから処理する全てのメールを開いたまま、プログラムを実行すれば、確実にエラーが起きるような数のメールなので。) 10、メールボックスに戻るので、{down}と{enter}で次のメールを開く。 繰り返し。 ●●●困っていること●●● 1、sendkeysをなるべく使わずに実行したい。 sendkeysでは、たとえば他のプラグラム(セキュリティーソフトなど)が実行された場合でも、そのまま実行され続けるので、リスクが大きい。 2、仮に1で書いたような事態が起きた場合、プログラムを自動的に停止するようにしたいが、どのやってコンピューターにエラーが起きていると判断させるかわからない(違うメールやプログラムを開いている場合に呈する等)。 3、エクセルと連携させて、Sendkeysを減らしたい。 4、繰り返し処理はこの場合、どうやって命令するのか。 ●●●今のコード●●● var WShell = WScript.CreateObject("WScript.Shell"); WShell.AppActivate("業務に使うメールソフト(別のウィンドウに開いてある必要があります)"); WShell.Sendkeys("{ENter}"); WScript.sleep(100); WShell.sendkeys("%"); WScript.sleep(100); WShell.sendkeys("a"); WScript.sleep(100); WShell.sendkeys("d"); WScript.sleep(100); WShell.sendkeys("^F"); WScript.sleep(100); WShell.sendkeys("検索したい文字列"); WScript.sleep(100); WShell.sendkeys("{ESC}"); WShell.sendkeys("{DOWN}"); WScript.sleep(100); WShell.sendkeys("+{RIGHT}{RIGHT}{RIGHT}{RIGHT}{RIGHT}{RIGHT}{RIGHT}{RIGHT}"); WScript.sleep(100); WShell.sendkeys("^c") WScript.sleep(100); WShell.AppActivate("EXCEL"); WScript.sleep(10000); WShell.sendkeys("セルまで移動") WShell.sendkeys("^V"); WShell.AppActivate("業務に使うメールソフト"); WShell.sendkeys("%"); WShell.sendkeys("w"); WShell.sendkeys("window がある番号"); WShell.sendkeys("%"); WShell.sendkeys("^W"); WShell.sendkeys("{DOWN}"); WScript.Echo "作業が完了しました。"

  • VBS(WSH)で開いたIEのウィンドウがアクティブにならない

    VBSでタイトルバーのみのIEウィンドウを開き、 SendKeyでtestと入力するスクリプトを作成しています。 ですが、開いたIEのウィンドウがアクティブにならず、 SendKeyがIEに送信されません。 VBSについては全くの初心者でして、ウィンドウがアクティブにならないのが 環境の問題なのか、プログラムの問題なのか判断できません。 どなたかご教授をお願いします。 IEのバージョンは8、OSはWinXPです。 以下、ソースです。 -------------------------------------------------- 'タイトルバーのみのIEを起動する Set WshShell = WScript.CreateObject("WScript.Shell") Set objIE = WScript.CreateObject("InternetExplorer.Application") objIE.Navigate("http://www.google.co.jp/") objIE.MenuBar = False objIE.StatusBar = False objIE.ToolBar = False objIE.AddressBar = False objIE.Visible = True '表示待ちループ Do While objIE.Busy WScript.Sleep 100 Loop '[test]で検索 WshShell.SendKeys("test") WScript.Sleep(100) WshShell.SendKeys("{TAB}") WScript.Sleep(100) WshShell.SendKeys("{ENTER}") --------------------------------------------------

  • WshShell.Runでサーバにアクセスできません。

    拡張子が「js」のファイルでWshShell.Runでサーバにアクセスできません。 var WshShell= new ActiveXObject("WScript.Shell"); WshShell.Run("runas /user:ドメイン名\\administrator \\サーバ名\Adobe Reader9をサイレントインストールする.bat"); while(!WshShell.AppActivate("runas.exe")){ WScript.Sleep(100); } ・ ・ ・ どなたかご教授お願いします。

専門家に質問してみよう