Windows XPでエイリアスを作成する


54

学校に戻って、私はの行に沿って.loginファイルを持っていた

alias ll = ls -l  
alias dir = ls -Fhl  
alias web = cd ~/public/public_www/development  

私はここで仕事中のXPボックスでそのようなことをしたいと思っていますが、オンラインで見つけたリソースのほとんどはかなり複雑でヘビーデューティです。レジストリをいじったり、大きなバッチファイルを実行したりすることなく、これを行う方法はありますか?

これを尋ねた私の最初の理由は、1つの特定のフォルダー内の1つのコマンドに対してのみコマンドラインが必要であり、コマンドラインを起動したときにそのフォルダーにすばやくアクセスできるようにしたかったからです。しかし、この質問の受け入れられた答えは非常に良いので、元の問題について別の質問として尋ねることにしました:Windowsコマンドプロンプトのデフォルトの開始フォルダに変更します


quick&dirtyオプションは、フォルダーをPATH変数に追加するだけです。右クリックし、[ マイコンピュータ]を選択し、[プロパティ]をに行き、高度その後、環境変数を。詳細:stackoverflow.com/a/20773224/722036
aexl

回答:


84

多くの人はそれについて知っているようには見えませんが、doskey組み込みのマクロツールを使用できます。唯一の問題は、保存されないことです。ただし、これを回避する方法はたくさんあります。

使用法:

doskey ls=dir

lsこれで、ディレクトリリストが表示されるようにdirなります。

コマンドで引数を使用する場合は、次の構文を使用します。

doskey d=dir $*

保存する回避策について:

  • 次の形式ですべてのエイリアスをファイルに保存します。
doskey ls = dir
doskey .. = cd ..

パス内のいずれかのディレクトリに配置します。a.cmdのような短い名前を付けて、cmdを開いたときにaを入力てエイリアスを読み込むことができます。

を入力しaて押すのEnterが大変すぎると思われる場合は、これをAutoHotkeyスクリプトにスローします。

WinWaitActive, C:\WINDOWS\system32\cmd.exe
Send {a}{Enter}

エイリアスを自動的にロードする

cmdへのすべてのショートカットを%SystemRoot%\system32\cmd.exe /K C:\path\to\aliases.cmd、を指すように変更してC:\path\to\aliases.cmd、エイリアスファイルの場所に置き換えることができます。通常、実行ボックスから実行する場合、次のことができます。

  • たとえば、cmd実行可能ファイルの名前をcmd2.exeに変更し、上記のコマンドを起動するスクリプトまたは別の実行可能ファイルに置き換えます(多くのアプリはcmdに依存するため、この方法はお勧めしません)
  • たとえば、バッチスクリプトを作成し、cmda(エイリアス付きのcmd)と呼びます。上記のコマンドを起動して、このバッチスクリプトをパスのどこかに配置します。

1
+1 NICE !!! 何年もDoskeyを見ていない(または覚えていない)!...(私の頭の中で思い出の歌を演奏する!)
ウィリアムヒルサム

19
ここではAutoHotkeyスクリプトは必要ありません。Windowsには、cmd.exeを起動するたびにバッチファイルを自動実行する方法があります。technet.microsoft.com/ en-us / library / cc779439(WS.10).aspx c:\ dev \ autorun.batを指すように構成しますdoskeyマクロをロードし、他の便利なユーティリティを実行します。
ダンファブリチ

PowerShellが非常に優れていると示唆している人が誰もいないことに本当に驚いています。
エディB

定義されたマクロはWin + R(実行)ボックスから機能しますか?
-ZEE

38

次のように簡単です:

  1. c:\ bin \ aliasesなどのエイリアスを使用してファイルを作成します。

    ls=dir /ONE $*
    cd=cd /d $*
    python=python -ic "" 
    ps=tasklist $*
    kill=taskkill /IM $*
    
  2. cmd.exeの起動時に実行するすべてのものを含むファイルを作成します。たとえば、doskeyを使用してエイリアスをロードします(例:c:\ bin \ cmd_autoruns.cmd)

    @echo off
    cls
    color 0A
    doskey /macrofile=c:\bin\aliases
    
  3. コマンドプロセッサキーをcmd_autoruns.cmdに設定するバッチファイル(たとえばset_cmd_autorun.cmd)を一度作成して実行Autorunします。

    reg add "hkcu\software\microsoft\command processor" /v Autorun /t reg_sz /d c:\bin\cmd_autoruns.cmd
    

set_cmd_autorun.cmdの代替として、代わりに以下のような.regファイルを作成し、ダブルクリックでマージすることもできます。

REGEDIT4

[HKEY_CURRENT_USER\Software\Microsoft\Command Processor]
"CompletionChar"=dword:00000009
"DefaultColor"=dword:00000000
"EnableExtensions"=dword:00000001
"PathCompletionChar"=dword:00000009
"Autorun"="c:\\bin\\cmd_autoruns.cmd"

「color OA」はおそらく「color 0A」です。
csnullptr

1
他のキーも明示的に設定する場合を除き、"Autorun"="..."行の下の[HKEY_...]行のみが必要です。
c24w

5

私の答えはvriolkのものに似ています

マクロを含む.batファイルを作成しました(例:c:\ winscripts \ autoexec.bat):

@doskey whereis = c:\ winscripts \ whereis.cmd $ *
@doskey ls = dir / b $ *
@doskey l = dir / od / p / q / tw $ *

そして、cmdプロンプトから「cmd /?」を実行しました cmd自動実行用に編集するレジストリキーを見つけるには:

HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Command Processor \ AutoRun
  および/または
HKEY_CURRENT_USER \ Software \ Microsoft \ Command Processor \ AutoRun

regeditを使用して、マクロバッチファイルのパスをAutoRun値に追加します(AutoRunキーが存在しない場合は追加します)。

c:\ winscripts \ autoexec.bat

これで、Start-> Runプロンプトから「cmd」を実行すると、このautoexec.batも実行され、doskeyマクロが作成されます。

ところで、whereis.cmdには以下が含まれます。

@for %% e in(%PATHEXT%)do @for %% i in(%1 %% e)do @if NOT "%%〜$ PATH:i" == "" echo %%〜$ PATH:i

PATH変数で指定した用語を検索します:

c:> whereis javaw
c:\ jdk \ bin \ javaw.exe

ところで代わりにwhereis使用することができますハックwhere組み込みコマンドである
Dheeraj Bhaskar

1

.cmdファイルを作成して、%PATH%のどこかに配置できます(C:\ Windowsなど)。Webエイリアスを例として使用するには:

@C:
@cd \inetpub\wwwroot

次のようなことをします:

M:\> web
C:\inetpub\wwwroot>

フラットな.aliasesスタイルファイルを作成する方法を知りません。


1

面倒な手間をかけずにすぐに使えるショートカットを用意する非常に手っ取り早い方法は、PATH環境変数の一部であるディレクトリの1つに、エイリアスにちなんで名付けられたバッチファイルを作成することです。たとえば、エイリアスを介してNotepad ++を呼び出したいので、C:\ WINDOWSに次を含むnpp.batを作成しました。

"c:\Program Files\Notepad++\notepad++.exe" %1 %2 %3 %4 %5

nppコマンドは、自動実行ファイルやレジストリへのエクスカーションなしで、任意のcmdシェルから使用できるようになりました


0

私がやった方法は、簡単なpythonスクリプトを使用することでした。

import sys
import string
import os
import glob

def listAll():
        for infile in glob.glob("c:\\aliases\\*.bat"):
            fileName = infile
            fileName = fileName[len("c:\\aliases\\"):len(fileName)-4]
            fileContents = open("c:\\aliases\\" + fileName + ".bat", "r")
            fileContents.readline()
            fileContentString=fileContents.readline()
            fileName += " is aliased to "
            fileName += fileContentString[0:len(fileContentString)-3]
            print fileName

def listSome(which):
        for infile in glob.glob("c:\\aliases\\*.bat"):
            fileName = infile
            fileName = fileName[len("c:\\aliases\\"):len(fileName)-4]
            fileContents = open("c:\\aliases\\" + fileName + ".bat", "r")
            fileContents.readline()
            fileContentString=fileContents.readline()
            if fileName.find(which)==0:
                fileName += " is aliased to "
                fileName += fileContentString[0:len(fileContentString)-3]
                print fileName

if len(sys.argv)>1:
    if sys.argv[1]!="-p":
        file = open("c:\\aliases\\"+sys.argv[1]+".bat", "w")
        file.write("@ECHO OFF\n")
        counter=0
        totalInput=""
        counter=0
        for arg in sys.argv:
            if counter > 1:
                totalInput+= arg + " "
            counter+=1

        if totalInput.find(".exe")!=-1:
            file.write("\"")

        counter=0

        for arg in sys.argv:
            if counter > 1:
                file.write(arg)
                if sys.argv[1]==sys.argv[2]:
                    if counter==2:
                        file.write(".exe")
                temparg=str(arg)
                if temparg.find(".exe")!=-1:
                    file.write("\"")
                file.write(" ")
            counter+=1
        file.write("%*")

        print "Aliased " + sys.argv[1] + " to " + totalInput
    else:
        if len(sys.argv)>2:
            listSome(sys.argv[2])
        else:
            listAll()
else:
    listAll()

貧弱なスクリプトをおApびしますが、使用法は非常に良いです、nice。それをパスのどこかに置き、.EXTをPATHEXTに追加し、c:\ aliasesをPATHにも追加し(または、必要に応じて変更します)、使用します:

alias <command> <action>

エイリアスに(はい、no =、そこに.splitを追加するのは難しくありませんが)、そして:

alias -p <command or part of>

何かを表示するには。

ハックですが、愚かにも便利です。同等のunaliasスクリプトがありますが、それを解決できると確信しています。

編集:これには明らかにv26で書かれたPythonが必要ですが、おそらく最近のどんなものでも動作します。前と同じように、品質にごめんなさい:)

edit2:実際には、このようなものですが、doskeyのものに追加する方が良いでしょう。autorunレジストリキーを使用して、cmdにスタートアップコマンドを追加することもできます。


1
ニースのソリューションですが、私のニーズには少し行き過ぎです。
ポップス

確かにそうです。私は私のものがどのように機能するかを制御するのが好きです、すべて:P
Phoshi
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.