web-dev-qa-db-ja.com

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

学校に戻ると、以前は.loginファイルが

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

私のXPボックスはここで動作しています)でそのようなことをしたいのですが、オンラインで見つけたほとんどのリソースはかなり複雑で重たいようです。これは、レジストリをいじったり、大きなバッチファイルを実行したりする必要がないのですか。

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

55
Pops

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

使用法:

doskey ls=dir

lsdirと同じようにディレクトリリストを実行します。

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

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)と呼びます。上記のコマンドを起動し、このバッチスクリプトをパスのどこかに配置します。
84
John T

それは簡単です:

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

    ls=dir /ONE $*
    cd=cd /d $*
    python=python -ic "" 
    ps=tasklist $*
    kill=taskkill /IM $*
    
  2. doskeyを使用してエイリアスを読み込むなど、cmd.exeの起動時に実行したいすべてのものを含むファイルを作成します。 c:\ bin\cmd_autoruns.cmd

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

    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"
39
user29888

私の答えは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 autorun用に編集するレジストリキーを見つけるには:

 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
5
andematt

準備ができたショートカットを作成するための非常に迅速で汚い方法です。多くの手間は必要ありません。PATH環境変数の一部であるディレクトリの1つに、エイリアスにちなんだ名前のバッチファイルを作成します。たとえば、エイリアスを介してNotepad ++を起動したかったので、C:\ WINDOWSに以下を含むnpp.batを作成しました。

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

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

2
hello_earth

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

@C:
@cd \inetpub\wwwroot

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

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

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

1
djhowell

私がやった方法は簡単な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()

貧弱なスクリプトへの謝罪ですが、使い方はかなりいいですね。それをパスのどこかに配置し、.pyをPATHEXTに追加し、c:\ aliasesもPATHに追加して(または変更して、適切であれば)、次を使用します。

alias <command> <action>

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

alias -p <command or part of>

何かが表示されます。

ハックですが、馬鹿げて役に立ちます。同等のunaliasスクリプトがありますが、きっとそれでうまくいくと思います。

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

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

0
Phoshi