コマンドプロンプトに文字列を送信No.01286
eisuke さん 00/04/01 01:18
 
秀丸から コマンドプロンプト(cmd.exe or command.com)に
文字列を送信してコマンドを実行する方法はないでしょうか。
VB だと クリップボードに文字列を貼っておいて
SendKey で ALT+E P を 送ると 張り付くそうです。

具体的には テキストでコマンド一覧を作っておいて
Shift+Enter か 何かで コマンドプロンプトで実行したいのです。

コマンドプロンプトが開いてなかったらどうするか、とか
複数のコマンドプロンプトがあったらどうするのかといった
問題も有りますが。

[ ]
RE:01286 コマンドプロンプトに文字列を送No.01288
encodingshiftjis さん 00/04/01 13:54
 
>秀丸から コマンドプロンプト(cmd.exe or command.com)に
>文字列を送信してコマンドを実行する方法はないでしょうか。

MS-DOSのエディタにはシェルモード/ファイラーがあったし
EMACSにはシェルモード/Dired がある。
Win のエディタはどうでしょう?
秀丸に実行環境志向があるのかもわからないし。

concon問題にもわかるようにWin9x のシェルは特殊らしいから。
DOS窓はMS-DOSエミュレータだしCOMMAND.COM は16Bitプログラム
ALT+E P は MS-DOS プロンプト に効きますか?

WSHで SendKeys では効かなかった。
画面はアクティブにできたが16Bitプロが受けつけなかった。
ぺーストボタンは押せない。さらにコマンド行だけでなく
実行したMS-DOSプログラムからの入力待ちに対してはどうか?

単発起動だけなら、文字列を選択して
run gettext(seltopx,seltopy,selendx,selendy);
なのですが、カレントディレクトリ、検索パス、環境変数、完了コード
などはシェルが必要。パイプ結合、リダイレクトも。

すぐできるのは、行文字列から.BAT を発生させ、それを起動する
少しはシェルを真似られるでしょう。

[ ]
RE:01286 コマンドプロンプトに文字列を送No.01289
じゅうえん さん 00/04/02 07:05
 
参考にならないとは思いますが・・・

前に同様のことを試みていたときに
run "command.com /c echo dir /w | command.com >con";
run "command.com /c echo print 'Hello World!!'; | perl >con";
みたいにやろうとしていた記憶があります
実行ファイルによっては( >con しないとかで)使えないことはないかと思うのですが
だめでしょうか

#ここの皆様はじめまして じゅうえん といいます
 数日前より入会させていただいていろいろ勉強させていただいております
 今後ともよろしくお願いいたします

[ ]
RE:01288 コマンドプロンプトに文字列を送No.01585
ENCODINGSHIFTJIS さん 00/11/06 16:40
 
できました。
----------------- sendDOS.js -------------------------
  var WShell = WScript.CreateObject("WScript.Shell");
   WShell.AppActivate("MS-DOS プロンプト"); //DOS窓 をアクティブに Win95
  WScript.Sleep(3000);                //3秒待って
   WShell.Sendkeys("% EP");    //キーを送る paste ができた
----------------------------------------------------
ALT+EP ではなかった.
しかし、KEY送信は低レベルな昔の方法。 MS純正では WSH したり
するのが普通では?
       

[ ]