Emacsのshellモードでのdoskeyマクロの使い方

このQ&Aのポイント
  • Emacsのshellモードでdoskeyマクロを使いたいがうまくいかない
  • doskeyマクロを定義したバッチファイルを実行してもマクロが使えない
  • バッチファイルで定義した環境変数は使えるが、マクロは使えない
回答を見る
  • ベストアンサー

Emacsのshellモードでのdoskeyマクロ

こんにちは。 OSは現在、64bit版のWindows7を使っています。 Emacsは、Gnu Emacs for Windows 23.4 を使っています。 このEmacsにおいて、「M-x shell」で shell mode に入ったあと、 doskeyマクロを定義したバッチファイルを実行し、 そのdoskeyマクロを使おうとしたのですが、できませんでした。 具体的には、 doskey cdh=pushd %Userprofile% といったマクロを定義してあるバッチファイルを、shell modeにおいて、 実行した後に、 cdhと入力しても、 「'cdh' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 というメッセージが流れるだけでした。 cdh以外のマクロも、同じように使えませんでした。 でも、そのバッチファイルで定義した環境変数は、shell modeでも使えました。 doskey /m というコマンドを実行すると、 doskey cdh=pushd %Userprofile% といった行が見つかりましたので、なぜ使えないのかが分かりません。 何か御存じの方がいらっしゃれば

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.1

無理だと思います。 生のコマンドプロンプトで、 echo マクロ名 | cmd とかしても、効きませんので、他プロセスから標準入力に流し込むケースではDOSKEYマクロは駄目のようです。

MetalLover
質問者

お礼

御回答ありがとうございます。 emacsでshellを自在に使いたかったのですが、 マクロがだめだとなると、少し厳しいですね。 なにかお分かりになれば、情報提供いただけると、非常に助かります。

関連するQ&A

  • doskeyマクロをバッチスクリプトで使うには?

    こんにちは。 コマンドプロンプトでは、Unixシェルのエイリアスに似た機能として、doskeyマクロがあります。 例えば、 doskey cdh=pushd %Userprofile% というような行が書かれたバッチスクリプトを実行すると、doskeyマクロが設定され、 コマンドプトンプト上で使えるようになりjます。 このようにして設定されたdoskeyマクロは、バッチスクリプトでは使用する事ができません。 具体的に言いますと、 doskey cdh=pushd %Userprofile% という行が書かれたバッチスクリプト1を実行した後、 別のバッチスクリプト2で、マクロcdhを使おうとしても、使えません。 環境変数のように、doskeyマクロを、様々なバッチスクリプトで使う事はできないのでしょうか?

  • Emacsのshellモードに関する質問

    Emacsのshellモードにに関する質問 こんにちは。 Emacsは、Gnu Emacs for Windows 23.4 を使っています。 shellモードについて、2つ質問させて下さい。 ・cdといった、bashの組み込みコマンドが、日本語を対処できない。 shellモードのシェルとして、bashを使った場合、cdコマンドの引数に、 日本語を含むディレクトリを指定すると、 No such file or directoryと表示されて、目的のディレクトリに移動できません。 具体的には、以下のような感じです。 ------------------------------------------------------------ Kei-Valuestar@Kei:~/Make_Tests_for_C_Files $ls 2つの関数、1つのヘッダ make_01 make_02 make_03 make_04 make_05 make_06 make_07 make_08 make_09 デフォルトシンボル、組み込み関数一覧.url トリビアなmakefile入門.url Kei-Valuestar@Kei:~/Make_Tests_for_C_Files $cd 2つの関数、1つのヘッダ/ bash: cd: 2つの関数、1つのヘッダ/: No such file or directory ------------------------------------------------------------ 日本語環境は整えてあるので、lsコマンドでは、日本語ファイルがきちんと表示されていますし、日本語ファイル名の補完も上手く行くので、bashの組み込みコマンドである、 cdだけが、日本語を適切に扱えないのだと思います。 日本語も扱える、cdコマンド(exeファイル)は、どこかで配布されてないのでしょうか? ・moreやlessといったコマンドが、きちんと動作しない。 shellモードでは、コマンドプロンプトや、cygwinのbashを使うのですが、 どちらを使った場合でも、moreやlessといった、ファイルの内容をページごとに表示する コマンドを実行した時に1ページづつ表示されず、catコマンドを実行した場合と同じように、ファイルの内容が全て表示されてしまいます。 何か対処法は無いでしょうか? 以上の件で、何か御存じの方がいらっしゃれば、是非、情報を提供して頂きたく思います。 では、よろしくお願い致します。

  • Windows 用 Emacs で、shell で困ってます

    perl のプログラムを、Emacs の shell で実行すると,打ったコマンドが、次の行に現れて、プログラムがうまく動いてくれません。たとえば、 print "Enter a first number: "; chomp($one = <STDIN>); の部分が、プリントされないのです。何も表示されてないところへ、数を入力すると、最後にまとめてプリントされます。  Emacs をカスタマイズすれば直るものでしたら、嬉しいんですが。  ちなみに、perl は、Active Perl です。 どなたか、わかる方がおられましたら、ご教示願います。

  • コマンドプロンプトでのマクロ使用

    バッチファイルを作成しているんですが ディレクトリを指定する箇所が多いので、簡潔に cdコマンドで移動する処理をd1,d2のようにしてマクロにしたいと思うのですが思うようにいきません。 コマンドプロンプト上に手打ちならば動くのですが バッチファイル上に組み込むと動きません。 doskeyを用いて、以下のような使用を考えています。(一部のみ) doskey d1=cd C:\aaa doskey d2=cd C:\bbb echo ***起動 d1 start ***.exe d2 start ***.exe

  • Emacs上でmoreやlessが機能しない

    こんにちは。 Emacsは、Gnu Emacs for Windows 23.4 を使っています。 Emacsのシェルモードでは、cygwinのbashを使っています。 このシェルモードで、ファイルをmoreやlessといったコマンドで表示しようとしても、 1ページずつ表示されず、catコマンドと同じように、一気に表示されます。 Emacsのシェルモードでは、moreやlessの1ページずつ表示する機能は、使えないのでしょうか? 以上の件について何かご存知の方がいらっしゃれば、是非教えて頂きたいと思います。

  • Emacsのインストール

    Mac OSXでEmacsをインストールしたのですが、ビルドを行った場所にできたディレクトリの扱いに困っています。 やったことはターミナルで以下のコマンドを実行しました。 curl -O http://ftp.gnu.org/pub/gnu/emacs/emacs-24.1.tar.gz svn co http://svn.sourceforge.jp/svnroot/macemacsjp/inl … inline_patch tar xvfz emacs-24.1.tar.gz cd emacs-24.1 patch -p0 < ../inline_patch/emacs-inline.patch ./configure --with-ns --without-x make bootstrap make install するとEmacs.appがビルドしたディレクトリ以下/nextstep/Emacs.appにできたのでこれをApplicationフォルダに移動したのですが、ビルドしたディレクトリ以下にできた残りのファイルなどは消してもいいのでしょうか?

  • emacsの設定ファイルの追加について(オリジナルモードを追加するには?)

    今話題のCUDAでプログラミングしていますが、エディタにemacsを使っています。cc-modeとかのようにcuda-modeというのがないので、自分で新たにcuda-modeを自作して作ろうと考えているのですが、cc-modeの定義ファイルの場所はどこになるのでしょうか?あるいは、どこを変更すればよいのでしょうか? 詳しい知識をお持ちの方がいればよろしくお願いします。

  • Emacsとyatexのアンインストール

    MacOSX 10.8を使用しています。ターミナルで以下のコマンドを実行してEmacsをインストールしたあと、こちら(http://d.hatena.ne.jp/shokim/20110419/1303170232)を参考にして最新版のyatexをインストールしました。Emacsとyatexをアンインストールするにはどうすればよいでしょうか? curl -O *ttp://ftp.gnu.org/pub/gnu/emacs/emacs-24.1.tar.gz svn co http://svn.sourceforge.jp/svnroot/macemacsjp/inl … inline_patch tar xvfz emacs-24.1.tar.gz cd emacs-24.1 patch -p0 < ../inline_patch/emacs-inline.patch ./configure --with-ns --without-x make bootstrap make install

  • Emacsのシェルでpythonの対話モード…

    windows10上でEmacs26.3を使っています。 Emacsのシェル上でpythonの対話環境を開こうとしてもできません。 Emacs上でM-x shellなりM-x eshellなりM-x powershellなりでシェルを開いて、 画面が C:\Users\Username> 等となっている状態で、 C:\User\Username>python と打ってエンターを押しても、ただ改行されるだけで起動しません。 python以外でも、juliaやstack ghci(haskellの対話モード起動する)でも変な挙動になります。 普通のコマンド類(cdやdirなど)は問題なく使えます。 Emacs上ではなく普通にコマンドプロンプトやpowershellでなら普通にpython対話モードを起動できます。 どうすれば上手く起動するでしょうか。

  • windows上でのgnu emacs設定ファイル

    Windows Vista上で GNU Emacs 22.2.1 (i386-mingw-nt6.0.6002) of 2008-03-27 on A208752 を使っていますが, .emacs.elというか設定ファイルはどこに置けばいいのでしょうか? いろいろ試したがうまく行きません.

専門家に質問してみよう