Windowsのコマンドプロンプトでbash
のようにコマンドエイリアスを作成するにはどうすればよいですか?
フォーラムスレッド でdoskey
を見つけたので、次のようなことができます。
doskey ls=dir /b
...そして今、コマンドls
は、Unixのls
と少し似ています。 (私はls
をcmd
に入力することが多いので、面白くもありません。)
しかし、これをセッション間で固定するにはどうすればよいですか?次回cmd.exe
を開いたときに表示されなくなります。 (.bash_profile
のようなものはありますか?)
この場合、cygwinを使用できますが、これは正確なトピックの回答ではありません。
http://www.cygwin.com/ CygWin
ダウンロード: http://cygwin.com/setup.exe
Windowsで簡単にアクセスするには、パスにc:\ cygwin\binを指定します。
同等ではないWindowsソフトウェアと競合するいくつかのコマンドがあることに注意してください。 find(1)vs find.exe-find(1)はすべてのファイルとサブディレクトリを一覧表示しますが、find.exeはgrepのように機能します。
別のオプションはアクセスすることです
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRunまたはHKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun
チェックアウト
cmd.exe /?
@DOSKEY
コマンドとHKCU\Software\Microsoft\Command Processor
Autorunオプションを使用して、Windowsコマンドプロンプトで永続的なエイリアスを設定するのはかなり簡単です。
クイックステップバイステップガイド:
Alias.bat
という名前を付けます。以下のテキストをコピーして貼り付けます。 TIP:すべてのコマンドラインツール用にC:\Bin
フォルダを作成することをお勧めします。HKEY_CURRENT_USER\Software\Microsoft\Command Processor
を開きます。Autorun
という名前のString Valueを追加し、値をAlias.bat
ファイルの絶対パスに設定します。このバッチファイルは、コマンドプロンプトを開くたびに実行されます。
Alias.batの内容
DOSKEY ls=DIR $*
DOSKEY cp=COPY $*
DOSKEY xcp=XCOPY $*
DOSKEY mv=MOVE $*
DOSKEY clear=CLS
DOSKEY h=DOSKEY /HISTORY
DOSKEY alias=if ".$*." == ".." ( DOSKEY /MACROS ) else ( DOSKEY $* )
これでalias
(つまりDOSKEY /MACROS
)と入力して、エイリアス/マクロの現在のリストを表示できます。
現在のセッションのみの新しいエイリアスを追加するには、alias name=command
を使用できます。
また、一種のトピック外-
cmd.exe
コマンドラインの代わりにPowerShellを使用してください。良いニュースは、PowerShellには.bash_profile
と同等の機能があり、cmd.exe
コマンドラインと同じように実行されることです。エイリアス生成機能が組み込まれています。悪い知らせは、単純なcmd.exe
コマンドよりも複雑なことを実行したい場合は、少し習得が難しいことです。
ちなみに、ls
は、そのままではdir
のエイリアスとして定義されています。
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun
には、cmdプロンプトを起動したときにコマンドを実行できるレジストリエントリがあります。これには、バッチファイルが含まれます。
これらのコマンドのdosバージョンを this link から直接インストールすることをお勧めします。
シンプル、軽量、高効率など。しばらく使ってみて、嬉しいです! Cygwinは、私が必要とする必需品に対して少し大きいです。
PATH環境を設定して解決
ls.cファイルを作成する
次のコードを入力してください
int main()
{
system("dir /b");
return 0;
}
ls.cに入れて、ファイルをコンパイルします。
$gcc ls.c -o ls
実行可能ファイルls.exeが作成されます
ディレクトリを作成し、cmdline_toolsという名前を付けます
$mkdir cmdline_tools
ls.exeをディレクトリにコピーします
pATH環境にディレクトリのパスを設定します[ディレクトリの場所をコピーしてPATHに貼り付けます]
C:/cmdline_tools
Cmd.exeを開いて入力します
$ ls
Dirコマンドとして動作します。他のコマンドについても同様に行うことができます。そうでない場合はお知らせください。
エイリアスを、おそらくalias.cmdというファイルに入れ、/K \path\to\alias.cmd
の開始に使用するショートカットにcmd.exe
を追加します。
私はしばらくネクロマンサーになり、このスレッドを死から復活させます。答えは私には満足できませんでした。もっと良い方法があることを知っていました。私はバットファイルの作成とインクルードに手を出して、スパゲッティボールをうまく機能させる方法を理解しようとしましたが、うまくいきませんでした。とにかくGoogleに戻りました。
私もこれを見つけました 新しいDOSエイリアス/コマンドを追加し、管理DOSのキーボードショートカットを作成する方法 それはうまく機能し、98-7で機能するはずです(ちょっとおかしい番号付けシステムですが、ウィンドウです)。 。私はそれがこのスレッドの人々とそれらのグーグルがこのように送るのを助けることを望みます。
この方法はAliasほど簡単ではなく、doskeyも簡単ではありません。一度設定すると、これはほぼ同じ作業です。
また、デニスウィリアムソンの回答とマージされたこの部分がはるかに優れていることも付け加えておきます。同じアプリケーションの複数のバージョン用のシェル環境を持つことができます。たとえば、古いスクリプトの場合はphp 4、テストサーバーの場合はphp 5とします。
とにかく、これは私にとってはるかにうまくいきました。
Doskeyとbashrc(cygwin> bashから)のエイリアス/関数を含むCMD、スラッシュはcmdでも機能します(win7以降)
Cmdrc.cmdを使用するには、cmdへのショートカットを作成します
cmd -a "/ k%HOME%\ cmdrc.cmd c:\"
2 C:> cat%HOME%/ cmdrc.cmd
:: Override same named builtin windows commands
:: To override these aliases, prefix with '@', eg. @date will not use alias.
@doskey date=c:\cygwin\bin\date.exe $*
@doskey echo=c:\cygwin\bin\echo.exe $*
@doskey mkdir=c:\cygwin\bin\mkdir.exe $*
@doskey rmdir=c:\cygwin\bin\rmdir.exe $*
@doskey find=c:\cygwin\bin\find.exe $*
@doskey time=c:\somedir\time.exe $*
:: using a particular rsync with some options
@doskey rsync=c:\cygwin\bin\rsync.exe -e "ssh -F %HOME%/.ssh/config" $*
@doskey cp='cp -vi %*'
@doskey ..=cd ..
@doskey ...=cd ../..
:: Or use bashrc (bash aliases, bash functions):
:: eg. In bashrc we have "alias cpvi='cp -vi'"
@doskey cpvi=bash -ic "set +u; cpvi $*"
:: now cpvi is callable from cmd.
:: Install clink_x64 if you want readline editing in cmd
それらをautoexec.batに入れてみてください。よくわからないので、試してみてください。 autoexec.bat自体をC:\に配置します