Windows XP에서 별칭 만들기


54

학교로 돌아가서 나는 .login 파일을

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

직장에서 XP 상자로 이런 종류의 일을하고 싶지만 온라인에서 찾은 대부분의 리소스는 상당히 복잡하고 무겁게 보입니다. 레지스트리에서 문제를 일으키거나 큰 배치 파일을 실행하지 않는 방법이 있습니까?

내가 묻는 원래의 이유는 하나의 특정 폴더에 하나의 명령에 대한 명령 줄만 필요했기 때문에 명령 줄을 시작할 때 해당 폴더로 빨리 갈 수 있기를 원했습니다. 그러나이 질문에 대한 대답은 너무 좋기 때문에 원래 문제에 대해 별도의 질문으로 결정하기로 결정했습니다 .Windows 명령 프롬프트의 기본 시작 폴더로 변경 .


빠른 옵션은 폴더를 PATH변수에 추가하는 것 입니다. 내 컴퓨터를 마우스 오른쪽 단추로 클릭 하고 속성을 선택한 다음 고급으로 이동 한 다음 환경 변수로 이동하십시오 . 추가 정보 : stackoverflow.com/a/20773224/722036
aexl

답변:


84

많은 사람들이 그것에 대해 알고있는 것 같지 않지만 doskey내장 매크로 도구를 사용할 수 있지만 유일한 문제는 저장하지 않는다는 것입니다. 이 문제를 해결하는 방법에는 여러 가지가 있습니다.

용법:

doskey ls=dir

ls지금처럼 디렉토리 목록 할 것입니다 dir것입니다.

명령에 인수를 사용하려면 다음 구문을 사용하십시오.

doskey d=dir $*

저장 방법은 다음과 같습니다.

  • 모든 별명을 다음 형식으로 파일에 저장하십시오.
도스 키 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 ! 몇 년 동안 Doskey를 보지 못했거나 기억하지 못했습니다! ... ( 내 머리 속에서 추억의 노래를 연주합니다 !)
William Hilsum

19
여기에 오토 핫키 스크립트가 필요하지 않습니다. Windows는 cmd.exe를 시작할 때마다 배치 파일을 자동 실행하는 방법을 제공합니다. technet.microsoft.com/ko-kr/library/cc779439(WS.10).aspx c : \ dev \ autorun.bat를 가리 키도록 구성합니다. doskey 매크로를로드하고 다른 편리한 유틸리티를 실행합니다.
Dan Fabulich

PowerShell을 제안한 사람이 아무도 없어서 정말 놀랍습니다.
Eddie 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 : \ 빈 \ 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"

'컬러 OA'는 아마도 '컬러 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를 사용하여 매크로 배치 파일의 경로를 자동 실행 값에 추가하십시오 (없는 경우 자동 실행 키 추가).

c : \ winscripts \ autoexec.bat

이제 시작-> 실행 프롬프트에서 "cmd"를 실행할 때마다이 autoexec.bat도 doskey 매크로를 실행하고 작성합니다.

그런데 whereis.cmd에는 다음이 포함됩니다.

@ % NOT "%% ~ $ PATH : i"== ""echo %% ~ $ PATH : i에서 (% PATHEXT %)의 @ %% e를 수행하십시오.

제공하는 용어에 대해 PATH 변수를 검색합니다.

c :> 어떻게 javaw
c : \ jdk \ bin \ javaw.exe

BTW 대신은 whereis당신이 사용할 수있는 해킹 where내장 명령 명령 인
Dheeraj 바스 카르

1

.cmd 파일을 만들어 % PATH %에 배치 할 수 있습니다 (예 : C : \ Windows). 웹 별칭을 예로 사용하려면 :

@C:
@cd \inetpub\wwwroot

다음과 같은 일을 할 것입니다 :

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

플랫 .aliases 스타일 파일을 만드는 방법을 모르겠습니다.


1

준비가 된 바로 가기를 얻는 매우 빠르고 더러운 방법은 많은 소란이 필요하지 않습니다. PATH 환경 변수의 일부인 디렉토리 중 하나에 별명을 딴 배치 파일을 만드는 것입니다. 예를 들어, 별칭을 통해 Notepad ++를 호출하고 싶었으므로 C : \ WINDOWS에 다음을 포함하는 npp.bat를 만들었습니다.

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

이제 npp 명령은 자동 실행 파일 및 / 또는 레지스트리 여행없이 모든 cmd 쉘에서 사용할 수 있습니다.


0

내가 한 방법은 빠른 파이썬 스크립트였습니다.

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에 추가하고 PATH에 c : \ aliases를 추가하거나 적절한 경우 변경하십시오.

alias <command> <action>

별명 (예, 아니오 =, 거기에 .split을 추가하는 것은 어렵지 않지만) 및 :

alias -p <command or part of>

무엇인가를 표시합니다.

해킹이지만 어리석게 유용합니다. 상응하는 unalias 스크립트가 있지만 그 중 하나를 해결할 수 있다고 확신합니다.

편집 : 이것은 분명히 v26으로 작성된 파이썬이 필요하지만 아마도 최근에는 작동 할 것입니다. 이전과 마찬가지로 품질에 대해 죄송합니다. :)

edit2 : 실제로, 이와 같은 것이지만 doskey에 추가하는 것이 좋습니다. 자동 실행 레지스트리 키를 사용하여 cmd에 시작 명령을 추가 할 수 있으므로 훨씬 깔끔합니다.


1
내 요구에 약간의 잔인하지만 좋은 해결책.
Pops

실제로 그렇습니다. 나는 단지 내 물건의 작동 방식을 제어하는 ​​것을 좋아합니다. : P
Phoshi
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.