web-dev-qa-db-ja.com

コマンドプロンプトを開いたときにコマンドを自動的に実行する

Windowsでコマンドプロンプトを開いたときに、いくつかのコンソールコマンドを自動的に実行する方法、特にいくつかのコマンドエイリアスを設定する方法を探しています。

たとえば、コマンドプロンプトを開いたときに、次のようなコマンドを自動的に実行して、lsの代わりにdirを使用できるようにします。

doskey ls=dir

これはどのように行うことができますか?

21
Daniel Williams

ログイン時ではなく起動時にロードする場合は、XP Pro(XPホームにgpedit.mscが含まれていない))がある場合は、次のようにします。

スタート>実行> gpedit.msc

enterキーを押します。次に、コマンドラインからgpupdate/forceを実行します。

に行く

コンピューターの構成> Windowsの設定>スクリプト>起動

場所をスクリプトに追加します。

これは、以下のユーザーログオンでも実行できます。

ユーザーの構成> Windowsの設定>スクリプト>起動

XP Homeを持っている場合は、スクリプトを次のいずれかにコピーできます。

C:\ Windows\System32\GroupPolicy\Machine\Scripts\Startup

起動時にそれらをロードするため、または:

C:\ Windows\System32\GroupPolicy\User\Scripts\Logon

ログオン時にユーザーにロードするため。 GroupPolicyフォルダは非表示になっています。

9
KCotreau

コマンドエイリアスは、それらを構成するコンソールウィンドウに固有であるため、起動スクリプトは機能しません。あなたはこの方法でそれを行うことができます:

  1. バッチファイル(.cmddoskeyコマンドを使用して、アプリケーションデータのどこかに配置します。

  2. cmdを開くたびに自動的に開始されるように構成します。設定はレジストリにあります:

    • キー:HKCU\SOFTWARE\Microsoft\Command Processor
    • 値:AutoRun
    • タイプ:REG_EXPAND_SZ
    • データ:"%AppData%\aliases.cmd"
48
user1686

コマンドインタープリターが異なれば、コマンドエイリアスの処理方法も異なります。

MicrosoftのCMDは、Win32コンソールサブシステムに依存して、そのコマンドエイリアスメカニズムを提供します。 doskeyコマンドは実際にはプロセスのコンソールと対話し、エイリアスを保持するのはコンソール自体です。したがって、エイリアスはコンソールごとの一時的なものです。

JP SoftwareのTCC/LE はエイリアス自体を処理します。 alias command を使用すると、「ローカル」または「グローバル」のエイリアスを表示および操作できます。エイリアスは一時的なものですが、1つのコマンドインタープリタープロセスに対してプライベートであるか、またはすべてのコンソール間ですべてのコマンドインタープリタープロセス間で共有されています。

SFUAユーティリティツールキットKornシェル などのシェル—そのツールは NIXベースアプリケーションのサブシステム で実行され、 Windows 7 UltimateエディションとWindows Server 2008 R2を含むボックス(Windows XPの場合、 download とインストール Services for UNIX version 3.5 をインストールできます。)—およびBourne Again Shell- cygwin エイリアス自体も同様に処理します。エイリアスは一時的で、コマンドごとのインタープリタープロセスです。

エイリアスのデフォルトの初期セットの自動ロードも、コマンドインタープリターによって異なります。

すべての場合において、エイリアスを設定するコマンドを何らかのスクリプトに配置します。

grawityはすでに MicrosoftのCMDが起動時にコマンドを実行するようにする2つのレジストリキー の1つを指定しています。残念ながら、エイリアス自体はコンソールに格納されていますが、これはコマンドインタープリタープロセスごとです。最初のコマンドインタープリターを最初のコマンドインタープリターから開始すると、デフォルトのエイリアスに対する手動の変更はリセットされます。代わりに、少なくともコンソールごとに1回だけ初期化を実行する代わりに、/Kオプションと、doskeyを呼び出すコマンドスクリプトの名前を、コマンドインタープリターを起動するショートカットのコマンドテールに追加します。 。

JPソフトウェアのTCC/LE 起動時にTCSTARTスクリプトを自動的に実行 繰り返しますが、これはコマンドインタープリタープロセスごとです。ただし、TCCの「ローカル」エイリアスはalsoコマンドインタープリタープロセスごとなので、ローカルエイリアスを使用している場合、これはエイリアスを初期化するのに適切な場所です。グローバルエイリアスの場合は、Startupフォルダーにショートカットを作成します。このショートカットは、ファイルからエイリアスを読み込み(alias /rを使用)、次に the shraliasコマンド を実行します。そのショートカットの実行が終了した後も存続します。

Bourne AgainシェルとKornシェルの場合は、他のプラットフォームでこれらのシェルを使用する場合と同じようにしてください。 Bourne Againシェルの$HOME/.profileおよび$HOME/.bashrcスクリプトでaliasコマンドを使用します。 Kornシェルの$HOME/.profile、ENV、および$HOME/.kshrcスクリプトでaliasコマンドを使用します。

4
JdeBP

重力の答えは私にとってはうまくいきました。

DocumentsフォルダーにShell-aliases.cmdスクリプトを作成しました(後で見つけることができる場所)。

次に、レジストリキーに「AutoRun」拡張可能文字列値を作成しました。

'HKEY_CURRENT_USER\Software\Microsoft\Command Processor'

値をエイリアスファイルへのフルパスに設定します(Mineは 'C:\ Users\Lee\Documents\Shell-aliases.cmd'にありました)。

コマンドプロンプトを再ロードしたら、doskeyエイリアスが機能しました。さらに、エイリアスファイルは簡単にアクセスでき、追加することを考えると編集する準備ができています。

2
lee8oi

実行できる場所はいくつかありますが、[スタート]メニュー> [起動フォルダ]がおそらく最も簡単です。

'msconfig'を実行して、起動するプログラムとその理由を確認します。プログラムをそれらのリストの1つ(たとえば、レジ​​ストリー)に追加するだけです。

0
Konerak

ここでの問題は、起動時にそれを行う場合、これらの置換は、開いているCMDプロンプトでのみ使用可能になることです。それが閉じると、これらの置換はすべて失われ、コマンドプロンプトを開くたびに再度実行する必要があります。

したがって、いくつかの代替方法(それらを組み合わせることができます):

I.バッチとショートカットを作成します。

  1. これらのマクロを使用してバッチを作成し、既知の場所(c:\ apps\mycmd.batなど)に保存します。
  2. パスの前に "cmd/k"を付けてデスクトップ(または必要な場所)にショートカットを作成します(例: "cmd/k c:\ apps\mycmd.bat")。
  3. したがって、そのショートカットを開くたびに、すべてのコマンドが実行されます。

II。バッチとPATH環境変数にエントリを作成します。

  1. これらのマクロを使用してバッチを作成し、既知の場所(c:\ apps\mycmd.batなど)に保存します。
  2. [コントロールパネル]> [システム]> [詳細構成]> [詳細]> [環境変数]に移動します。
  3. ユーザーまたはシステムエントリで、PATHという名前の変数を検索します。それをダブルクリックし、最後に「;」を挿入します。 BATへのパス(例: "c:\ apps \" => "previous_string; c:\ apps \")、次にOk and Ok。
  4. したがって、cmd(またはBATファイル内)を使用する場合は、作成されたパス(たとえば、「c:\ apps」)にBATの名前を入れて、コマンドを実行します(たとえば、「myapps」と入力して、これらの置換コマンドを実行します)。
0
kokbira