17

Я ищу способ автоматического выполнения некоторых консольных команд при открытии командной строки в Windows, в частности, для установки псевдонимов некоторых команд.

Например, когда открыта командная строка, я хочу, чтобы автоматически выполнялась команда, подобная следующей, чтобы я мог использовать ls вместо dir .

doskey ls=dir

Как это может быть сделано?

6 ответов6

42

Псевдонимы команд относятся к окну консоли, в котором вы их настраиваете, поэтому сценарий запуска не будет работать. Вы можете сделать это следующим образом:

  1. Создайте командный файл (.cmd) с вашими командами doskey , поместите его где-нибудь в Application Data.

  2. Настройте его на автоматический запуск при каждом открытии cmd. Настройка в реестре:

    • ключ: HKCU\SOFTWARE\Microsoft\Command Processor
    • значение: AutoRun
    • тип: REG_EXPAND_SZ
    • данные: "%AppData%\aliases.cmd"
8

Если вы хотите, чтобы он загружался при загрузке, а не при входе в систему, если у вас есть XP Pro (XP home не включает gpedit.msc), сделайте следующее:

Пуск> Выполнить> gpedit.msc

и нажмите ввод. Затем запустите gpupdate /force из командной строки.

Идти к

Конфигурация компьютера> Настройки Windows> Сценарии> Запуск

и добавьте местоположение к сценарию.

Вы также можете сделать это для входа пользователя в систему

Конфигурация пользователя> Настройки Windows> Сценарии> Запуск

Если у вас есть XP Home, вы можете скопировать сценарии в:

C:\Windows\System32\GroupPolicy\Machine\Scripts\Startup

для загрузки их при загрузке, или:

C:\Windows\System32\GroupPolicy\User\Scripts\Logon

для загрузки их для пользователя при входе в систему. Папка GroupPolicy скрыта.

4

Различные интерпретаторы команд обрабатывают псевдонимы команд по-разному.

CMD от Microsoft опирается на консольную подсистему Win32 для обеспечения механизма псевдонимов команд. Команда doskey фактически взаимодействует с консолью процесса, и сама консоль содержит псевдонимы. Таким образом, псевдонимы являются консольными и временными.

TCC /LE от JP Software обрабатывает псевдонимы самостоятельно. Команда alias позволяет просматривать и манипулировать псевдонимами, которые являются "локальными" или "глобальными". Псевдонимы по-прежнему временны, но являются частными для одного процесса интерпретатора команд или используются всеми процессами интерпретатора команд (на всех консолях).

Такие оболочки, как оболочка Korn в служебном инструментарии SFUA, чьи инструменты работают в Подсистеме для приложений на основе UNIX, которая поставляется в комплекте с Windows 7 Ultimate Edition и Windows Server 2008 R2 (для Windows XP можно загрузить и установить Службы для UNIX версии 3.5.) - и оболочка Bourne Again от cygwin аналогичным образом обрабатывает сами псевдонимы. Псевдонимы являются временными, и для процесса интерпретатора команды.

Автоматическая загрузка начального набора псевдонимов по умолчанию также зависит от интерпретатора команд.

Во всех случаях можно поместить команды для установки псевдонимов в каком-либо сценарии.

grawity уже предоставил один из двух ключей реестра, которые заставляют CMD Microsoft запускать команду при запуске. К сожалению, это процесс интерпретатора команд, хотя сами псевдонимы хранятся на консоли. Запустите дополнительный командный интерпретатор из исходного, и любые ручные изменения псевдонимов по умолчанию будут сброшены. Альтернатива, которая хотя бы один раз выполняет инициализацию для каждой консоли, заключается в добавлении параметра /K и имени командного сценария, который вызывает doskey к хвосту команды в ярлыке , запускающем интерпретатор команд.

TCC/LE от JP Software автоматически запускает скрипт TCSTART при запуске. Опять же, это процесс интерпретации команд. Однако "локальные" псевдонимы TCC также используются для каждого процесса интерпретатора команд, так что это подходящее место для инициализации псевдонимов, если используются локальные псевдонимы. Для глобальных псевдонимов просто создайте ярлык в папке « Startup », который загружает псевдонимы из файла (с alias /r), а затем запускает команду shralias чтобы они сохранялись после завершения этого ярлыка.

Для оболочек Bourne Again и Korn просто делайте то же самое, что и эти оболочки на любой другой платформе. Используйте команду alias в сценариях $HOME/.profile и $HOME/.bashrc для оболочки Bourne Again; и используйте команду alias в сценариях $HOME/.profile , ENV и $HOME/.kshrc для оболочки Korn.

2

Ответ Гравити работал отлично для меня.

Я создал сценарий shell-aliases.cmd в своей папке «Документы» (где-то я могу найти его позже).

Затем создал расширяемое строковое значение AutoRun в разделе реестра:

'HKEY_CURRENT_USER\ Программное обеспечение \ Microsoft \ Командный процессор'

Задайте значение для полного пути к файлу псевдонимов (мой был в 'C:\Users\Lee\Documents\shell-aliases.cmd').

Как только я перезагрузил командную строку, мои псевдонимы работали. Кроме того, мой файл псевдонимов легко доступен и готов к редактированию, так как я думаю добавить еще.

0

Есть несколько мест, которые можно использовать, но меню «Пуск»> «Папка запуска», вероятно, является самым простым.

Запустите msconfig и посмотрите, какие программы запускаются и почему. Вы можете просто добавить свою программу в один из этих списков (например, в реестре).

0

Проблема здесь в том, что если вы сделаете это при запуске, эти замены будут доступны только в открытом приглашении CMD. Если он закроется, все эти замены будут потеряны и должны быть выполнены снова для каждой открытой командной строки.

Итак, несколько альтернативных способов (их можно комбинировать):

I. Создать пакет и ярлык:

  1. Создайте пакет с этими макросами и сохраните его в известном месте (например, c:\apps\mycmd.bat).
  2. Создайте для него ярлык на рабочем столе (или там, где вы хотите), поместив «cmd /k» перед его путем (например, «cmd /kc:\apps\mycmd.bat»).
  3. Таким образом, все ваши команды будут выполняться каждый раз, когда вы открываете этот ярлык.

II. Создайте пакет и запись в переменной среды PATH:

  1. Создайте пакет с этими макросами и сохраните его в известном месте (например, c:\apps\mycmd.bat).
  2. Перейдите в Панель управления> Система> Расширенные настройки> Дополнительно> Переменные среды.
  3. В записях пользователя или системы найдите переменную с именем PATH. Дважды щелкните по нему и, в конце, вставьте «;» и путь к вашей BAT (например, "c:\apps\" => "previous_string; c:\apps\"), затем Ok и Ok.
  4. Поэтому, когда вы используете cmd (или в файле BAT), просто введите имя BAT в созданный путь (например, «c:\apps») для запуска ваших команд (например, введите "myapps" для запуска этих команд замещения).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .