Создайте псевдоним в Windows XP

Назад в школе, я раньше имел .login файл вроде

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

Я хотел бы сделать такую вещь со своим полем XP здесь на работе, но большинство ресурсов, которые я нашел онлайн, кажется довольно сложным и мощным. Существует ли способ сделать это, которое не вовлекает слоняние без дела в реестр или выполнение большого пакетного файла?

Моя исходная причина выяснения у этого состояла в том, что мне только нужна командная строка для одной команды в одной определенной папке, и я хотел смочь добраться до той папки быстро, когда я запустил командную строку. Но принятый ответ для этого вопроса так хорош, что я решил спросить о своем первичном размещении как отдельный вопрос: Изменитесь на папку запуска по умолчанию для командной строки Windows.

54
задан 20.03.2017, 12:17

5 ответов

Не многие люди, кажется, знают об этом, но можно использовать 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 с псевдонимами), например. Имейте его, запускают вышеупомянутую команду и помещают этот сценарий пакетной обработки где-нибудь в Ваш путь.
84
ответ дан 07.12.2019, 08:24

Можно создать .cmd файлы и разместить их куда-нибудь в %PATH % (такой как C:\Windows). Использовать Ваш веб-псевдоним в качестве примера:

@C:
@cd \inetpub\wwwroot

Сделал бы что-то как:

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

Я не знаю ни о каком способе сделать плоский файл стиля .aliases.

1
ответ дан 07.12.2019, 08:24

Путем я сделал это было с быстрым сценарием 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()

Извинения за плохие сценарии, но использование довольно хорошо, imo. Поместите его куда-нибудь в Ваш путь, добавьте .py к своему PATHEXT и добавьте c:\aliases к своему ПУТИ также (или измените его, безотносительно исков), затем используйте:

alias <command> <action>

для искажения (Да, нет =, хотя не было бы трудно добавить .split там), и:

alias -p <command or part of>

Отображаться, каково что-то.

Hackish, но глупо полезный. Существует эквивалентный сценарий непсевдонима, но я уверен, что можно разработать это один.

править: Это, очевидно, требует Python, записанного на v26, но будет, вероятно, работать в чем-либо недавнем. Как прежде, жаль о качестве :)

edit2: На самом деле что-то вроде этого, но добавить к материалу doskey было бы лучше. Можно добавить команды запуска к cmd с ключом реестра автозапуска также так, чтобы могло быть намного более чистым.

0
ответ дан 07.12.2019, 08:24
  • 1
    Хорошее решение, хотя немного излишества для моих потребностей. – Pops 01.10.2009, 17:02
  • 2
    Действительно это. Я точно так же, как управление, как мой материал работает, всем :P – Phoshi 01.10.2009, 18:50

Это - простое как:

  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. Создайте и работайте однажды пакетный файл (например, set_cmd_autorun.cmd), который установит Командный процессор Autorun ключ к нашему cmd_autoruns.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"
38
ответ дан 07.12.2019, 08:24

Мой ответ подобен vriolk's

Я создал .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
  and/or
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun

использование regedit, добавляют, путь для Вашего макро-пакетного файла к значению AutoRun (добавьте ключ AutoRun, если это не там):

c:\winscripts\autoexec.bat

теперь каждый раз, когда Вы выполняете "cmd" от Запуска-> подсказка Выполнения, этот autoexec.bat также выполнит и создаст doskey макросы для Вас.

Между прочим, whereis.cmd содержит это:

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

который ищет Вашу переменную ПУТИ термин, Вы обеспечиваете:

c:>whereis javaw
c:\jdk\bin\javaw.exe
5
ответ дан 07.12.2019, 08:24

Теги

Похожие вопросы