2016-04-14 12 views
1

私は、バッチスクリプトを経由して( script1.bat )をDOSKEYエイリアスを追加し、別のバッチスクリプトでそれを呼び出すようにしてみてください。それは動作しません。DOSKEYの別名は、(Windows 7の)バッチスクリプトでは動作しません

script1.bat:

set USER_SETTINGS=%DRIVE%\programme\settings.xml 
DOSKEY mvn=mvn --settings %USER_SETTINGS% -X $* 

がscript2.bat:

mvn clean install 

私はそれが動作しますが、コンソールからmvn clean installを呼び出します。デバッグの出力が近づいています。同じコンソールから2 script2.batと呼ぶと、デバッグ出力は行われません。

誰でも手助けできますか?

+5

バッチファイルがどのような 'DOSKEY'作品である対話型入力を、使用しないでくださいに。私が知る限り、これはうまくいかない。 – Joey

+1

こんにちはJoey、あなたは答えを投稿できました。それは私が望んでいた結果でない場合でも1つです....私は別の説明[ここ](http://unix.stackexchange.com/questions/1496/why-doesnt-my-bash-script-recognize-エイリアス)。概念は同じです。また、エイリアスは異なるシステムでは同じではないかもしれないという説明は、なぜそれをしてはならないのかの論理的説明です。これは環境変数にも当てはまりますが。 –

答えて

1

doskey /?でdoskeyのヘルプを表示した場合、"DOSプロンプトでコマンドを呼び出して編集し、マクロを作成"。バッチファイルはで、 DOSプロンプトではありません。DOS KEYコマンドは、のキーを入力としての矢印キーまたはF7キーと同様に機能します。

このため、次のコードは動作するはずです:

script2.batPress Keyboard keys using a batch file

+0

こんにちはAacini、あなたの答えをありがとう。私の場合、これは実際には適用できません。なぜなら、私は多くの異なるスクリプトでmvn呼び出しの多くの異なるバージョンを持っているからです。私の場合、 'MAVEN_OPTS'の設定を行うバージョンがより良い解決策でした。しかし、それはバッチファイルを介してキーを模倣することができることは興味深いです。 –

+0

説明は良いですが、回避策は脆弱であり、したがって不注意です。 – mklement0

+0

@ mklement0:このソリューションは完全に機能します。DOSKEYエイリアスはバッチファイルではなく、キーボード経由で使用するように設計されているため、この方法は実用的ではありません。しかし、この解決策は、OPが要求したものとまったく同じです:バッチスクリプトを介してDOSKEYエイリアスを呼び出しますか? – Aacini

-2
  • DOSKEYは、バッチファイル

  • で仕事をする時

    @if (@CodeSection == @Batch) @then 
    
    
    @echo off 
    
    rem Use %SendKeys% to send keys to the keyboard buffer 
    set SendKeys=CScript //nologo //E:JScript "%~F0" 
    
    rem Send the keys with the DOSKEY macro name: 
    %SendKeys% "mvn clean install{ENTER}" 
    
    goto :EOF 
    
    
    @end 
    
    
    // JScript section 
    
    
    WshShell.SendKeys(WScript.CreateObject("WScript.Shell").Arguments(0)); 
    

    さらなる詳細

  • あなたのDOSKEY文字列が例えば

動作しません。たぶん、このファイルを実行してみてください、junk.bat

doskey m=echo hi 
cmd /k "echo try typing m now" 
+0

OPは_interactive_ useを探していません。この考え方は、DOSKEY定義をバッチファイル_の_コマンドのエイリアスとして使用することです(これはサポートされていません)。 (副作用:バッチファイルで作られたDOSKEYの定義も、コンソールウィンドウでグローバルな効果があります) – mklement0

+1

質問は "doskey ** alias **"に関するもので、 'doskey'コマンドそのものに関するものではありません。バッチファイルで 'doskkey'コマンドを実行することはできますが(例えばエイリアスやマクロの_define)、doskey ** ALIAS **やマクロの使用は' doskey'コマンドを使用するのではなく、バッチでは機能しませんファイル... – Aacini

関連する問題