Раньше я работал над bash и много извлекал выгоду из псевдонима. Есть ли аналогичный способ в командной строке Windows?
Я не хочу имитировать среду Linux, поэтому Cygwin не является выбором. Мне просто нужен ярлык для очень длинной команды cd a_very_long_path
.
windows
command-line
StarPinkER
источник
источник
doskey
(не обманывайте себя именем, что это не старый DOS-ключ MS DOS). Используйтеdoskey /?
для получения дополнительной информации. Кроме этого, я боюсь, этот вопрос здесь не по теме.Ответы:
Как Christian.K сказал в своем комментарии, команда DOSKEY может использоваться для определения макросов, которые аналогичны псевдонимам.
Макро параметры упоминаются в определении через
$
префиксные позиции:$1
через$9
и$*
для всех.Обратитесь к документации doskey technet , или введите
doskey /?
илиhelp doskey
из командной строки для получения дополнительной информации.Но есть серьезные ограничения с макросами DOSKEY:
someMacro|findstr '^'
и то, и другоеdir|someMacro
терпит неудачу.for /f %A in ('someMacro') do ...
сбойОграничения настолько серьезны, что я редко использую макросы DOSKEY.
Очевидно, что вы можете создавать пакетные сценарии вместо макросов и убедиться, что расположение сценариев находится в вашей переменной PATH. Но тогда вы должны использовать префикс CALL для каждого скрипта, если вы хотите использовать скрипт в другом скрипте.
Вы можете создать простую переменную «макросы» для длинных и часто используемых команд, но синтаксис вводить немного неудобно, поскольку вам нужно расширять «макрос», когда вы хотите его использовать.
Определение:
Использование (из командной строки или скрипта)
источник
Вы можете сделать пакетный скрипт и сохранить его на свой путь.
В Linux вы создадите скрипт и добавите его в папку
~/bin
в Windows, вы можете сделать то же самое.Добавьте
%USERPROFILE%\bin
в своюPATH
переменную среды. Затем сохраните ваши сценарии там.quickcd.cmd
Теперь вы можете ввести
quickcd
в командной строке.Он также может быть вызван внутри скрипта с помощью
call
функцииисточник
Microsoft Windows [Version 10.0.17134.648]
/d
флагCD
subst
Если вы действительно пытаетесь обойти что-то вроде этого:
Вы можете использовать
subst
команду для сопоставления этого длинного пути с отдельной буквой дискаЗатем, когда вы хотите перейти в эту папку, вы можете просто ввести
m:
в командной строке.Преимущество этого
doskey
заключается в том, что он работает во всех пакетных программах и отображается в диалоговом окне любого файла в Windows.Если вам больше не нужно отображение:
источник
Вы можете использовать тот же прием, который использует Windows: установить переменную среды (или просто переменную в пакетном контексте), например, существует переменная среды% windir% (и некоторые другие). Таким образом, вы можете сделать
или же
который делает то же самое. Итак, все, что вам нужно сделать, это:
после этого вы можете сделать (где бы вы ни были):
или же
или что хочешь.
источник
В отличие от Linux, в Windows псевдонимы могут принимать аргументы, и им могут быть заданы параметры для назначения этих аргументов в их определении.
Внутренняя встроенная команда - doskey , это означает, что это не внешний исполняемый файл, находящийся в нем,
%SystemRoot%\System32
а особенность,cmd.exe
которая сама по себе находится в папке%SystemRoot%
или в%Windir%
обеихC:\Windows
папках и указывает на папку по умолчанию.Доски определяет псевдонимы среди многих других вещей. В терминологии Windows псевдонимы называются макросами. Чтобы установить псевдоним, который вы используете
Здесь
$1
указывает на первый аргумент и$*
указывает на все аргументы.Я бы всегда использовал
$*
двойные кавычки,$1
если есть только один аргумент для пропуска пробелов, которые рассматриваются как специальные символы, а именно как разделители (для команд).Кроме того, вы можете определить макросы
псевдонимовв отдельном файле, скажем,LinuxAliases.macro
а затем получить его с помощьюОн загрузит все псевдонимы, определенные внутри файла, только для текущего сеанса , то есть, когда вы
exit
выйдете изcmd.exe
процесса (также известный как оболочка и командная строка), они исчезнут.Чтобы иметь постоянные псевдонимы, вы можете ввести полную команду где-нибудь в ключе regedit, называемом либо AutoRun, либо AutoCommand, либо чем-то подобным, что я сейчас не могу вспомнить наряду с внутренним синтаксисом файла макроса: P
Вот официальная и даже лучшая документация для команды.
источник
Я сделал такой псевдоним специально для смены каталога. В основном я создал файл с именем
fav.bat
и поместил его в папку в PATH (например, C: \ MyBatches):Тогда я могу быстро перейти в любую предопределенную папку. Я написал полную статью об этой технике здесь .
источник
если вы остаться на том же диске, то есть не
D:
тоcd D:\somedir\
не нужно.В моем случае C: содержит системные файлы, но вся работа выполняется на D:
2 части Сначала установите несколько рабочих каталогов, используя командный файл.
скажем, localprofile.cmd . Вы можете иметь несколько из них, просто запустите их по мере необходимости.
теперь используйте другой командный файл для перемещения, основываясь на тех переменных окружения, которые вы только что установили.
wd.cmd
И пример использования:
wd сам по себе должен показать мне список закладок каталогов. Это работает, но не уверен, почему я получаю это сообщение "неожиданный компакт-диск".
Регулярные партии .cmd
Помимо навигации по каталогам, вы можете создать foo.cmd где-нибудь в вашем PATH, и он может действовать как псевдоним. Помните, в отличии от Linux / OSX оболочек, CMD файлы могут влиять на переменные окружения и сеанс, без необходимости источника их.
У меня есть cdbin.cmd для навигации, например:
А это псевдо-grep grep.cmd
в действии (независимо от того, что значит / + 2 / + 10)
D:\home\work\fb440.dumper>grep class *.py | sort /+2 /+10
источник
Вы можете использовать doskey.exe , вот пример:
А теперь , если вы наберете ,
qcd
то он будет кд на этом пути.Вот некоторая помощь с макросом doskey :
Это самая простая форма, вот пример:
и если вы напечатаете,
word
вывод:Вы можете использовать $ 1- $ 9 для параметров, вот пример:
и если вы наберете,
npd
откроется блокнот, но если мы введемnpd test.txt
, откроется test.txt в блокноте .Вы можете использовать $ * для всех параметров, вот еще один пример:
и если вы напечатаете,
prt This is short.
то результат будет:Вы можете использовать $ T для нескольких команд, вот пример:
и если вы напечатаете,
newline Hello and
то результат будет:Я надеюсь, вы понимаете.
источник