Изменить команду System32

Вопрос или проблема

У меня установлена Windows, и я хотел бы изменить определение встроенной команды Windows (в частности, sort) на установленную команду git, чтобы каждый раз, когда я пишу sort в командной строке, выполнялась версия sort для Unix вместо версии Windows. Я слышал о doskey из этого вопроса, но это действительно не срабатывает для меня, так как игнорирует, когда я пытаюсь передать ей другие команды. Выполнение where sort дает мне следующий вывод:

C:\>where sort
C:\Windows\System32\sort.exe
C:\Program Files\Git\usr\bin\sort.exe

Существует ли способ заставить sort каждый раз выполнять путь внизу? Спасибо!

Это говорит мне о том, что альтернативный sort.exe находится в вашем %path%; в противном случае его бы не нашел с помощью этой конкретной где команды (без тегов или переключателей):

C:\>where sort
C:\Windows\System32\sort.exe
C:\Program Files\Git\usr\bin\sort.exe

В %PATHEXT% посмотрите на стандартный вывод:

.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC

Если расширение .COM стоит на первом месте, это означает, что поиск sort будет специально следовать порядку нахождения sort.com перед тем, как искать sort.exe. Это объясняет, почему sort.bat, sort.cmd, sort.vbs и другие варианты/расширения не работают.


Это заставляет меня думать, что вы не выбрали замены find и sort на “альтернативные” версии, предложенные установщиком Git.

введите описание изображения здесь


Таким образом, было бы правильной попыткой просто переименовать расширение sort.exe в sort.com и посмотреть, как оно будет вести себя с вашими командами и перенаправлениями (|Sort), где оно будет приоритетным в порядке первой встречи в поиске %PATHEXT%..


Примечание 1.: Поскольку я предвижу, что обновления и проверки исполняемых файлов могут происходить спорадически, простое переименование может привести к некоторым неожиданным проблемам (или возможно, нет, кто знает?) с действиями Git (такими как обновления, проверки файлов и т. д.). Поэтому я все еще верю, что копирование sort.exe в sort.com может быть жизнеспособным вариантом, который хорошо работает с / и избегает любых аномалий с Git.


Примечание 2.: Следует учитывать, что для выполняемых скриптов, запланированных задач, резервных копий и других текущих действий в системе, которые используют sort.exe, потребуется внесение некоторых изменений, чтобы учесть программируемые действия в ожидаемых выводах для флагов, используемых в этих скриптах. Если это применимо, рассмотрите возможность нахождения и модификации скриптов для реализации соответствующих /flags, которые /совместимы с обеими версиями или просто укажите полные пути к sort.exe (%WinDir%\System32\Sort.exe) в ваших скриптах.


Примечание 3: Альтернативным вариантом мог бы быть вариант поместить копию sort.exe, переименованную в sort.com, в директорию C:\Windows\System32\. Однако я не уверен, что будет “возражать” против присутствия этого файла и удалит его. У меня нет никакого представления о том, чего ожидать, когда это действие будет выполнено, но это может быть полезно, если позволит такую попытку без каких-либо “негативных” реакций.

Ответ или решение

Д changing the default behavior of the sort command in Windows to utilize the Unix version from Git can be accomplished through a few methods. Below, I provide a detailed guide to help you achieve this, taking into account the relevant technical aspects and potential pitfalls.

Понимание проблемы

При вводе команды sort в командной строке Windows система по умолчанию использует файл C:\Windows\System32\sort.exe. Ваша цель заключается в том, чтобы настроить систему таким образом, чтобы вместо этого использовалась версия sort из Git, расположенная по пути C:\Program Files\Git\usr\bin\sort.exe.

Использование пути окружения (%PATH%)

Система Windows ищет исполняемые файлы, следуя порядку, указанному в переменной окружения %PATH%. Чтобы гарантировать, что команда sort будет указывать на Unix-версию, следует изменить порядок поиска. Есть несколько способов сделать это:

  1. Изменение переменной окружения PATH:

    • Перейдите в «Панель управления» → «Система» → «Дополнительные параметры системы» → вкладка «Дополнительно» → кнопка «Переменные среды».
    • Найдите переменную Path, нажмите «Изменить», и переместите путь к C:\Program Files\Git\usr\bin вверх в списке, выше C:\Windows\System32.

    Эта модификация обеспечит, что при вводе команды sort будет использоваться версия из Git, поскольку система сначала найдет sort.exe в указанной директории.

  2. Использование файла командных скриптов:
    Можно создать пакетный файл, который будет переопределять команду sort. Создайте текстовый файл с расширением .bat, например, sort.bat, и поместите в него следующую строку:

    @echo off
    C:\Program Files\Git\usr\bin\sort.exe %*

    Сохраните файл в одной из директорий, указанных в переменной %PATH%, и убедитесь, что он находится выше в порядке поиска, чем C:\Windows\System32\sort.exe.

  3. Использование переопределения через doskey:
    Возможно, вы также можете использовать команду doskey, но она может не поддерживать все функции, как упоминалось вами. Если использовать doskey, можно попытаться создать макрос:

    doskey sort=C:\Program Files\Git\usr\bin\sort.exe $*

    Но как вы заметили, этот метод игнорирует конвейеры, поэтому его не рекомендую.

Рекомендации по безопасности и функциональности

  • Создание резервных копий: Прежде чем вносить изменения в системные переменные, рекомендуется создать их резервные копии на случай, если возникнут проблемы.

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

  • Тестирование: После внесения изменений обязательно протестируйте команду sort в командной строке, чтобы убедиться, что новое поведение соответствует вашим ожиданиям.

Заключение

Настройка команды sort для использования Unix-версии из Git может улучшить вашу рабочую среду в Windows, обеспечивая доступ к мощным утилитам командной строки. Убедитесь, что вы придерживаетесь предложенных шагов и проверяете совместимость, чтобы избежать сбоев в работе системы. Если у вас возникнут дополнительные вопросы, не стесняйтесь обращаться за поддержкой.

Оцените материал
Добавить комментарий

Капча загружается...