web-dev-qa-db-ja.com

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

Windowsのコマンドプロンプトでbashのようにコマンドエイリアスを作成するにはどうすればよいですか?

フォーラムスレッドdoskeyを見つけたので、次のようなことができます。

doskey ls=dir /b

...そして今、コマンドlsは、Unixのlsと少し似ています。 (私はlscmdに入力することが多いので、面白くもありません。)

しかし、これをセッション間で固定するにはどうすればよいですか?次回cmd.exeを開いたときに表示されなくなります。 (.bash_profileのようなものはありますか?)

18
Benjamin Oakes

この場合、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 /? 
0
bubu

@DOSKEYコマンドとHKCU\Software\Microsoft\Command Processor Autorunオプションを使用して、Windowsコマンドプロンプトで永続的なエイリアスを設定するのはかなり簡単です。

クイックステップバイステップガイド:

  1. 新しいバッチファイルを作成し、Alias.batという名前を付けます。以下のテキストをコピーして貼り付けます。 TIP:すべてのコマンドラインツール用にC:\Binフォルダを作成することをお勧めします。
  2. レジスタHKEY_CURRENT_USER\Software\Microsoft\Command Processorを開きます。
  3. Autorunという名前のString Valueを追加し、値をAlias.batファイルの絶対パスに設定します。
  4. できました。

このバッチファイルは、コマンドプロンプトを開くたびに実行されます。

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を使用できます。

35
Dennis

また、一種のトピック外-

cmd.exeコマンドラインの代わりにPowerShellを使用してください。良いニュースは、PowerShellには.bash_profileと同等の機能があり、cmd.exeコマンドラインと同じように実行されることです。エイリアス生成機能が組み込まれています。悪い知らせは、単純なcmd.exeコマンドよりも複雑なことを実行したい場合は、少し習得が難しいことです。

ちなみに、lsは、そのままではdirのエイリアスとして定義されています。

9
mkClark

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRunには、cmdプロンプトを起動したときにコマンドを実行できるレジストリエントリがあります。これには、バッチファイルが含まれます。

3
Phoshi

これらのコマンドのdosバージョンを this link から直接インストールすることをお勧めします。

シンプル、軽量、高効率など。しばらく使ってみて、嬉しいです! Cygwinは、私が必要とする必需品に対して少し大きいです。

1
user248939

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コマンドとして動作します。他のコマンドについても同様に行うことができます。そうでない場合はお知らせください。

0
Albert Mundu

エイリアスを、おそらくalias.cmdというファイルに入れ、/K \path\to\alias.cmdの開始に使用するショートカットにcmd.exeを追加します。

参考

私はしばらくネクロマンサーになり、このスレッドを死から復活させます。答えは私には満足できませんでした。もっと良い方法があることを知っていました。私はバットファイルの作成とインクルードに手を出して、スパゲッティボールをうまく機能させる方法を理解しようとしましたが、うまくいきませんでした。とにかくGoogleに戻りました。

私もこれを見つけました 新しいDOSエイリアス/コマンドを追加し、管理DOSのキーボードショートカットを作成する方法 それはうまく機能し、98-7で機能するはずです(ちょっとおかしい番号付けシステムですが、ウィンドウです)。 。私はそれがこのスレッドの人々とそれらのグーグルがこのように送るのを助けることを望みます。

この方法はAliasほど簡単ではなく、doskeyも簡単ではありません。一度設定すると、これはほぼ同じ作業です。

また、デニスウィリアムソンの回答とマージされたこの部分がはるかに優れていることも付け加えておきます。同じアプリケーションの複数のバージョン用のシェル環境を持つことができます。たとえば、古いスクリプトの場合はphp 4、テストサーバーの場合はphp 5とします。

とにかく、これは私にとってはるかにうまくいきました。

0
ransom bot

Doskeyとbashrc(cygwin> bashから)のエイリアス/関数を含むCMD、スラッシュはcmdでも機能します(win7以降)

  1. 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
0
mosh

それらをautoexec.batに入れてみてください。よくわからないので、試してみてください。 autoexec.bat自体をC:\に配置します

0
0fnt