2017-01-27 7 views
0

Windowsコマンドプロンプトでコマンドを起動する必要があるcygwinスクリプトがあります。コマンドは非常に複雑です(多くのパラメータ)。私がやる方法はcygwinから.batファイルを書き、コマンドを入力し、その.batを 'cygstart "$ WINDIR \ explorer.exe" myBat.bat "というコマンドで起動することです。.bat Windowsコマンドプロンプトを開き、コンソールでコマンドを準備します。

問題は、開かれたcmdでは、ユーザーがそのコマンドを再度実行できるようにして、最終的に多くのパラメータの1つを変更することです。しかし、その命令は歴史に残っていない。

Windowsコマンドプロンプトでプログラムの履歴を更新することができれば、それを呼び出す前に履歴のコマンドを.batファイルに追加しておくと、これで私を節約できました。しかし、そのようなサポートはありません。

私が見る唯一のオプションは、.batファイルに新しく開かれたコンソールにコマンドを入力し、ユーザーがEnterキーを押して実行するようにすることです。これにより、履歴にコマンドが追加され、将来使用できるようになります。

これは可能ですか?

+1

[関連](http://stackoverflow.com/questions/38835407/add-command-to-cmd-history)および[関連](http://serverfault.com/questions/95404/is-there- a-global-persistent-cmd-history) – geisterfurz007

+0

おそらくあなたは['doskey'マクロ](http://ss64.com/nt/doskey.html)をインストールしたいかもしれません... – aschipfl

答えて

0

環境変数として実行するコマンドをエクスポートしようとすると、Windowsでは変数をエクスポートするコマンドがあります。

考え方は以下の通りです:

@echo 
set "command=echo something" 
echo something 
echo To reuse command type %command% 

あなたは略語とあなたの長いコマンドの代わりに覚えやすいよう%command%を使用することができるはずような。

+0

私は考えが好きですが、あなたはこれをコメントとして投稿するか、答えをより明確にするために詳細を追加する必要があります。 – geisterfurz007

+0

素早い対応をありがとうございます。詳細を教えてください。 –

+0

@RazvanLコンセプトを説明するためにそれをさらに追加しました:) – geisterfurz007

0
if (@CodeSection == @Batch) @then 

@echo off 
rem Enter the prefill value in the keyboard buffer 
CScript //nologo //E:JScript "%~F0" "Your long command goes here" 
goto :EOF 

@end 

WScript.CreateObject("WScript.Shell").SendKeys(WScript.Arguments(0)); 

あなたが行を実行にしたい場合は、単にコマンドの末尾に{ENTER}部分を追加し、(ほかに歴史の中で、それを含めます)。詳細はthis answerを参照してください。 SendKeysキーの詳細については、hereを参照してください。

関連する問題