web-dev-qa-db-ja.com

Windowsコマンドプロンプトのエイリアス

Path in Environment変数にnotepad++.exeを追加しました。

今すぐコマンドプロンプトで、notepad++.exe filename.txtfilename.txtを開きます。しかし、私はファイルを開くためにnp filename.txtだけをしたいのです。

私はDOSKEY np=notepad++を使ってみました。しかし、それはファイルを開かずに、すでに開かれているメモ帳++を最前線に持ってくるだけです。ファイルを開く方法は?

ありがとう。

285
Romonov

Joshの答えに追加するには、

次の手順でエイリアスを 永続的 にすることができます。

  1. DOSKEYコマンドで.batファイルまたは.cmdファイルを作成します。
  2. Regeditを実行してHKEY_CURRENT_USER\Software\Microsoft\Command Processorに移動します
  3. AutoRunという名前と.bat/.cmdファイルの full パスを持つ文字列値エントリを追加します。

    たとえば、パスの最初のセグメントを%USERPROFILE%\alias.cmdに置き換える%USERPROFILE%は、複数のマシン間で同期するのに役立ちます。

このように、cmdが実行されるたびに、エイリアスがロードされます。

完全を期すために、これが役に立つと思われるエイリアスの種類を説明するためのテンプレートです。

@echo off

:: Temporary system path at cmd startup

set PATH=%PATH%;"C:\Program Files\Sublime Text 2\"

:: Add to path by command

DOSKEY add_python26=set PATH=%PATH%;"C:\Python26\"
DOSKEY add_python33=set PATH=%PATH%;"C:\Python33\"

:: Commands

DOSKEY ls=dir /B
DOSKEY sublime=sublime_text $*  
    ::sublime_text.exe is name of the executable. By adding a temporary entry to system path, we don't have to write the whole directory anymore.
DOSKEY gsp="C:\Program Files (x86)\Sketchpad5\GSP505en.exe"
DOSKEY alias=notepad %USERPROFILE%\Dropbox\alias.cmd

:: Common directories

DOSKEY dropbox=cd "%USERPROFILE%\Dropbox\$*"
DOSKEY research=cd %USERPROFILE%\Dropbox\Research\

  • $*構文は、ディレクトリ文字列と引数を取り込む実行可能ファイルの後で機能します。したがって、上記の例では、ユーザー定義コマンドdropbox researchresearchと同じディレクトリを指しています。
  • Rivenfallが指摘したように、alias.cmdファイルの便利な編集を可能にするコマンドを含めるのは良い考えです。上記のaliasを参照してください。 cmdセッションにいる場合は、cmdを入力してcmdを再起動し、alias.cmdファイルをリロードします。

私が質問に対する答えをインターネットで検索したとき、どういうわけか議論は持続性だけかDOSKEYの使用法だけに焦点を当てていました。この2つの側面が一緒になっていることで、誰かが恩恵を受けることを願っています!


これは.regをインストールするのに役立つalias.cmdファイルです。上記で提案されたように、それは今dropboxフォルダへの例として設定されます。

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Command Processor]
"AutoRun"="%USERPROFILE%\\alias.cmd"
343
Argyll

パラメータを渡す必要があります。これを試してください。

doskey np=notepad++.exe $*

編集 (Romonovのコメントに応えて)Q: コマンドプロンプトを覚えさせる方法はありますか。新しいコマンドプロンプトを開くたびに実行する必要はありませんか。

doskeyは、コマンドプロセッサ(cmd.exeなど)によって解釈されるテキスト形式のコマンドです。他のプロセス(特にまだ開始されていないプロセス)で状態を変更することはわかりません。

初期コマンドを設定するためにdoskeyを使う人々は、シェル環境では一般的に(ウィンドウのタイトル、色などのような)すべての設定を行うバッチファイルを実行するために/Kオプションを使います。

cmd.exe /K env.cmd

env.cmd:

title "Foo Bar"
doskey np=notepad++.exe $*
...
220
josh poley

単純なコマンドをいくつか使用するだけの場合は、次の手順に従います。

  1. C:\ Aliases というフォルダを作成します。
  2. パスに C:\ Aliases を追加します(そのため、その中のファイルは毎回見つかります)。
  3. 必要な各エイリアスに対して、C:\ Aliasesに .bat ファイルを作成します。

多すぎるかもしれませんが、@ Argllからの(さもなければ優秀な)答えとは異なり、これは毎回このロードの問題を解決します。

たとえば、 Dig2.bat というファイルがあり、その中に次のものがあります。

@echo off
echo.
Dig +noall +answer %1

あなたの np ファイルはただ次のようになるでしょう:

@echo off
echo.
notepad++.exe %1

さて、私は私のC:\ Aliasesディレクトリに約20のエイリアス(別々の.batファイル)を持っています - 私は必要に応じて新しいものを作成します。たぶん最善ではないかもしれませんが、それはうまく機能します。

_ update _ :ユーザー@Mavからの素晴らしい提案によると、 %1 よりも %* を使用するのがさらに良いので、複数のファイルをコマンドに渡すことができます。

@echo off
echo.
notepad++.exe %*

そうすれば、これを行うことができます。

np c:\temp\abc.txt c:\temp\def.txt c:\temp\ghi.txt

そしてそれは3つのファイルすべてを開くでしょう。

74
roryhewitt

あなたがあなたのPATH変数にnotepad ++。exeを追加したとすれば、それは非常に簡単です。次のコードを使用して、System32フォルダにnp.batという名前のファイルを作成します。

@echo off
call notepad++.exe %*

%*は、npコマンドに渡すすべての引数をnotepad++.exeコマンドに渡します。

編集: ファイルをSystem32フォルダに保存するには管理者アクセスが必要です。ファイルを他の場所に作成し、手動でSystem32に移動しました。

28
Velixo

あるいは、 cmder を使用して、linuxのようにエイリアスを追加できます。

alias subl="C:\Program Files\Sublime Text 3\subl.exe" $*
27

また、次のコマンドを使用して、パスにalias.cmd(たとえばC:\ Windows)を作成できます。

@echo %2 %3 %4 %5 %6 > %windir%\%1.cmd

それができたら、次のようなことができます。

alias nameOfYourAlias commands to run 

そしてその後、あなたはカンマラインで入力することができます

nameOfYourAlias 

これが実行されます

commands to run 

しかし、私にとって最良の方法は、単にプログラムのパスを追加することです。

setx PATH "%PATH%;%ProgramFiles%\Sublime Text 3" /M 

そして今、私は崇高な

subl index.html

Windows 10のコンソールエイリアス

コンソールエイリアスを定義するには、Doskey.exeを使用してマクロを作成するか、AddConsoleAlias関数を使用します。

ドスキー

doskey test=cd \a_very_long_path\test

parameters も渡すには、最後に$*を追加します。doskey short=longname $*

AddConsoleAlias

AddConsoleAlias( TEXT("test"), 
                 TEXT("cd \\<a_very_long_path>\\test"), 
                 TEXT("cmd.exe"));

詳細情報はこちら コンソールエイリアスDoskeyパラメータ

9
Qwerty

次のように入力してエイリアスを作成します。

c:\>alias kgs kubectl get svc

Created alias for kgs=kubectl get svc

次のようにエイリアスを使用してください。

c:\>kgs alfresco-svc

NAME           TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)   AGE
alfresco-svc   ClusterIP   10.7.249.219   <none>        80/TCP    8d

次のalias.batファイルをあなたのパスに追加するだけです。それはそれ自身と同じディレクトリに追加のバッチファイルを作成するだけです。

  @echo off
  echo.
  for /f "tokens=1,* delims= " %%a in ("%*") do set ALL_BUT_FIRST=%%b
  echo @echo off > C:\Development\alias-script\%1.bat
  echo echo. >> C:\Development\alias-script\%1.bat
  echo %ALL_BUT_FIRST% %%* >> C:\Development\alias-script\%1.bat
  echo Created alias for %1=%ALL_BUT_FIRST%

これによって作成されたkgs.batというバッチファイルの例は次のとおりです。

@echo off 
echo. 
kubectl get svc %* 
6
Steaton

実際、Amigaでプログラムしていたときから使ったことのある小さなテクニックを紹介しましょう。 - - - 新しいシステムでは、個人用でもプロ用でも、ステップ1はC:\ BINとC:\ BATCHの2つのフォルダを作成することです。次に、パスステートメントを変更して、C:\ BATCH; C:\ BIN; [パスの残り]の順序で両方を先頭に置きます。

それが済んで、あなたがC:\ BINフォルダにそれらを単にコピーするためにアクセスする必要がある邪魔にならないユーティリティがほとんどなければ、それらはあなたのパスにあります。これらの割り当てを一時的に無効にするには、実行可能ファイルと同じ名前のバッチファイルをC:\ BATCHフォルダに追加します。パスを指定すると、C:\ BIN内のファイルよりも前に検索されます。それはあなたが今までにする必要があるかもしれないものすべてをカバーするべきです。

もちろん、最近ではこれを行うための正規の正しい方法は、ファイルへのシンボリックジャンクションを作成することですが、同じ原則が適用されます。少し追加のボーナスもあります。システムにパス内の既存のものと競合するものを入れたい場合は、それをC:¥BINまたはC:¥Batchフォルダーに入れるだけで、 プリエンプション オリジナルのものに変更できます。一時的または恒久的に、あるいは実際のものを変更することなく、物事をより快適な名前に変更します。

4
David

roryhewitt answerに展開しています。

DOSKEYよりも.cmdファイルを使用する利点は、これらの "エイリアス"がPowerShellやWSL(Linux用のWindowsサブシステム)などの他のシェルで使用できることです。

Bashでこれらのコマンドを使用する場合の唯一の問題は、 "alias"を呼び出す前にパス操作を行う必要があるかもしれないので、もう少しセットアップが必要になることです。

たとえば、Visual Studioでファイルを編集するための「エイリアス」であるvs.cmdがあります。

@echo off
if [%1]==[] goto nofiles
start "" "c:\Program Files (x86)\Microsoft Visual Studio 
11.0\Common7\IDE\devenv.exe" /edit %1
goto end
:nofiles
start "" "C:\Program Files (x86)\Microsoft Visual Studio 
11.0\Common7\IDE\devenv.exe" "[PATH TO MY NORMAL SLN]"
:end

これは、ファイルを指定せずに私の「通常の」プロジェクトを使用してVS(この場合はVS2012 - しかし好みに合わせて)を起動しますが、ファイルが指定されると実行中のVSにアタッチしようとします。 VSの新しいインスタンス.

Bashからこれを使用するために、 "vs Myfile"がいつもうまくいくとは限らないので、私はそれから余分なレベルの間接参照を追加します。

alias vs='/usr/bin/run_visual_studio.sh'

Vs.cmdを呼び出す前にパスを調整します。

#!/bin/bash
cmd.exe /C 'c:\Windows\System32\vs.cmd' "`wslpath.sh -w -r $1`"

だからこのように私はただできる

vs SomeFile.txt

コマンドプロンプト、Power Shell、またはbashのいずれかで、実行中のVisual Studioで編集用に開きます(これにより、私の貧弱な頭脳がVIコマンドを扱う必要がなくなるか、VSで何時間も編集しているときなどがなくなります)。

3
Alex Perry

この解決策は適切な解決策ではありませんが、場合によっては目的を果たします。

まずフォルダを作成し、それをシステムパスに追加します。エイリアスを作成したいプログラムの実行ファイルに移動します。右クリックしてデスクトップに送信(ショートカットの作成)。ショートカットの名前を快適な別名に変更します。それでは、ショートカットをクリックしてフォルダに配置してください。

実行プロンプトから、ショートカット名を直接入力して、プログラムを開いてもらうことができます。しかし、コマンドプロンプトから、 .lnk を追加してenterを押すと、プログラムが開きます。

1
BarathVutukuri

まず、np.cmdという名前のファイルを作成し、それをPATH検索リスト内のフォルダーに入れます。次に、np.cmdファイルを以下のように編集します。

@echo off
notepad++.exe
0
迷茫的量子

あなたのパスには既にnotepad++.exeがあります。そのフォルダにnpという名前のショートカットを作成し、それをnotepad++.exeにポイントします。

0
Shravan

ディレクトリごと/プロジェクトごとにエイリアスを有効にするにしたい場合は、次を試してください:

  1. まず、現在のディレクトリでaliasesという名前のファイルを検索し、そこからエイリアスを初期化するバッチファイルを作成し、make-aliases.cmdと呼びましょう

    @echo off
    if not exist aliases goto:eof
    echo [Loading aliases...]
    for /f "tokens=1* delims=^=" %%i in (aliases) do (
       echo   %%i ^<^=^> %%j
       doskey %%i=%%j
    )
    doskey aliases=doskey /macros
    echo   --------------------
    echo   aliases ^=^> list  all
    echo   alt+F10 ^=^> clear all
    echo [Done]
    
  2. 次に、次の形式を使用して、必要な場所にaliasesを作成します。

    alias1 = command1
    alias2 = command2
    ...
    

    例えば:

    b = nmake
    c = nmake clean
    r = nmake rebuild
    
  3. 次に、make-aliases.cmdの場所を%PATH%変数に追加して、システム全体に適用するか、既知の場所に保持します。

  4. cmdで自動的に開始します。

    • 一部の開発ツールはセッションごとに複数回自動実行スクリプトをトリガーするため、HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRunを使用することは絶対にお勧めしません。

    • ConEmを使用すると、別の方法で起動タスクからスクリプトを開始できます(Settings> Startup> Tasks)。たとえば、 {MSVC}というエントリ:

      cmd.exe /k "vcvars64 && make-aliases"

      Settings> Integration> with Command:{MSVC} -cur_console:nを使用してエクスプローラーコンテキストメニューに登録し、フォルダーを右クリックしてその中にVS開発者プロンプトを起動できるようにしましたaliasesが自動的にロードされた場合、それらがそのフォルダーにある場合。

      ConEmuがない場合は、対応するコマンドでcmd.exeへのショートカットを作成するか、毎回手動でmake-aliasesを実行するだけです。

エイリアスを忘れた場合は、aliasesマクロを使用してください。何か問題が発生した場合は、を押して現在のセッションをリセットしてください。 Alt+F10cmdの組み込みコマンドです。

0
sunny moon