Створіть псевдонім у 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 $*

Щодо рішення, яке дозволяє заощадити:

  • збережіть всі псевдоніми у файлі у такому форматі:
doskey ls = реж
доске .. = кд ..

і розмістіть його в одному з каталогів на своєму шляху. Назвіть це щось коротке на зразок 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 НІСКО !!! Не бачив (або пам’ятав) Доске протягом багатьох років! ... (Граючи пісню спогадів у моїй голові!)
Вільям Гілсум

19
Тут не потрібно сценарію AutoHotkey. Windows надає спосіб автоматичного запуску пакетного файлу кожного разу, коли ви запускаєте cmd.exe: technet.microsoft.com/en-us/library/cc779439(WS.10).aspx, конфігуруючи його, щоб вказувати на c: \ dev \ autorun.bat який завантажує doskey макроси та запускає інші зручні утиліти.
Дан Фабуліч

Я дуже здивований, що ніхто не запропонував PowerShell, що це досить проклято.
Едді Б

Чи працюють визначені макроси з поля Win + R (Run) ???
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. Створіть та запустіть один раз пакетний файл (наприклад, set_cmd_autorun.cmd ), який встановить Autorunключ Command Processor на наш 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"

"color OA", ймовірно, повинен бути "color 0A".
csnullptr

1
Вам потрібен лише "Autorun"="..."рядок під [HKEY_...]рядком, якщо ви також не хочете чітко встановити інші клавіші.
c24w

5

Моя відповідь схожа на вріолк

Я створив файл .bat, який містив мої макроси (наприклад, c: \ wincripts \ autoexec.bat):

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

а потім із підказки cmd біг "cmd /?" щоб знайти ключ реєстру для редагування для автозапуску cmd:

HKEY_LOCAL_MACHINE \ Програмне забезпечення \ Microsoft \ Командний процесор \ Автозапуск
  та / або
HKEY_CURRENT_USER \ Програмне забезпечення \ Microsoft \ Командний процесор \ Автозапуск

використовуючи regedit, додайте шлях до файлу пакетного макросу до значення AutoRun (додайте ключ AutoRun, якщо його немає):

c: \ wincripts \ autoexec.bat

тепер, коли ви запускаєте "cmd" із запиту "Пуск -> Виконати", цей autoexec.bat також буде запускатися і створювати для вас макроси doskey.

До речі, whereis.cmd містить це:

@ для %% e в (% PATHEXT%) зробіть @for %% i в (% 1 %% e) do @if NOT "%% ~ $ PATH: i" == "" echo %% ~ $ PATH: i

який шукає вашу змінну PATH для наданого вами терміна:

c:> де ява
c: \ jdk \ bin \ javaw.exe

BTW замість whereisхака ви можете використовувати, whereяка є вбудованою командою
Dheeraj Bhaskar

1

Ви можете створити .cmd файли та помістити їх десь у% PATH% (наприклад, C: \ Windows). Щоб використовувати свій веб-псевдонім як приклад:

@C:
@cd \inetpub\wwwroot

Зробив би щось на кшталт:

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

Я не знаю жодного способу зробити плоский файл стилю .aliases.


1

дуже швидкий і брудний спосіб отримати готовий ярлик, який не вимагає великої суєти, - це створити пакетний файл, названий на ім'я псевдоніму, в одному з каталогів, що входять до змінної середовища PATH. Наприклад, я хотів викликати Notepad ++ через псевдонім, тому я створив npp.bat в C: \ WINDOWS, який містив наступне:

"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()

Вибачте за поганий сценарій, але використання дуже приємне, imo. Помістіть його десь на своєму шляху, додайте .py у свій PATHEXT і додайте c: \ псевдоніми до свого PATH теж (або змініть його, що підходить), а потім скористайтеся:

alias <command> <action>

до псевдоніму (Так, ні =, хоча додати .split туди не важко), і:

alias -p <command or part of>

Щоб показати, що таке.

Хакіш, але тупо корисний. Є еквівалентний сценарій уналії, але я впевнений, що ви можете це розробити.

редагувати: Для цього, очевидно, потрібен python, написаний на v26, але, ймовірно, буде працювати у будь-якому недавному. Як і раніше, вибачте за якість :)

edit2: Насправді, щось подібне, але краще додати до doskey речі. Ви також можете додати команди cmd до cmd за допомогою ключа реєстру автозапуску, так що це може бути набагато чистішим.


1
Гарне рішення, хоч і трохи надмірне для моїх потреб.
Попс

Справді так і є. Мені просто подобається контролювати те, як працюють мої речі: P
Phoshi
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.