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

Еще в школе у ​​меня был файл .login в соответствии с

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

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

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

doskey люди, похоже, знают об этом, но вы можете использовать встроенный инструмент макросов 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 /KC:\path\to\aliases.cmd , заменив C:\path\to\aliases.cmd на местоположение вашего файла псевдонимов. Если вы обычно запускаете его из окна запуска, вы можете:

  • Переименуйте исполняемый файл cmd на cmd2.exe, например, и замените его скриптом или другим исполняемым файлом, который запускает указанную выше команду (я бы не рекомендовал этот метод, поскольку многие приложения зависят от cmd)
  • Создайте пакетный скрипт и вызовите его cmda (cmd с псевдонимами), например. Запустите эту команду и поставьте этот пакетный скрипт где-нибудь на своем пути.

Это просто:

  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 /dc:\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" 

Мой ответ похож на 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 \ Программное обеспечение \ Microsoft \ Командный процессор \ Автозапуск
   и / или
 HKEY_CURRENT_USER \ Программное обеспечение \ Microsoft \ Командный процессор \ Автозапуск

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

 C: \ winscripts \ autoexec.bat

Теперь всякий раз, когда вы запускаете «cmd» из приглашения Start-> Run, этот файл 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 

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

 @C: @cd \inetpub\wwwroot 

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

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

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

Очень быстрый и грязный способ иметь готовый ярлык, который не требует много шума – это создание командного файла с именем после псевдонима в одной из каталогов, которые являются частью переменной среды PATH. Например, я хотел вызвать Notepad ++ через псевдоним, поэтому я создал npp.bat в C: \ WINDOWS, который содержал следующее:

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

Теперь команда npp может использоваться из любой оболочки cmd, без файлов автозапуска и / или экскурсий в реестр

То, как я это делал, это быстрый скрипт 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 в свой PATH (или измените его, какие бы ни были костюмы), а затем используйте:

 alias <command> <action> 

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

 alias -p <command or part of> 

Чтобы показать, что это такое.

Хакки, но тупо полезно. Есть эквивалентный сценарий unalias, но я уверен, что вы сможете это сделать.

Edit: для этого, очевидно, требуется питон, написанный на v26, но, вероятно, будет работать в чем-то недавнем. Как и прежде, извините за качество 🙂

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

  • Ошибка чтения диска всякий раз, когда я устанавливаю XP pro
  • Пустой значок в панели управления?
  • ОЗУ 512 МБ + 512 МБ = ~ 700 МБ. Что случилось?
  • Блокировать весь сетевой трафик с / на ноутбук, кроме явных приложений / протоколов / целей?
  • Как изменить значки на жестком диске в Windows XP
  • Как заставить одиночный (только) канал аудио в YouTube / Flash видео играть в обоих (левый / правый) каналы?
  • Не удается установить Win XP поверх Vista / Ubuntu
  • Перезапуск системы после нажатия на сканирование руткита
  • Есть ли способ вручную перезапустить графические драйверы в Windows XP?
  • Как измерить скорость передачи данных между моим внутренним жестким диском SATA и внешним USB-накопителем?
  • Как можно сделать брандмауэр Windows XP для блокировки определенного приложения?
  • Давайте будем гением компьютера.