Псевдонимов в командной строке Windows
я добавил notepad++.exe
к моему пути в переменных среды.
теперь в командной строке notepad++.exe filename.txt
открывает filename.txt
. Но я хочу сделать только np filename.txt
открыть файл.
Я попытался с помощью DOSKEY np=notepad++
. Но он просто выводит на передний план уже открытый notepad++, не открывая файл. Как я могу заставить его открыть файл?
спасибо.
14 ответов
чтобы добавить к ответу Джоша,
вы можете сделать псевдоним(ы) постоянные со следующими шагами,
- создать .летучая мышь или. файл cmd с
DOSKEY
команды. - запустите regedit и перейдите в
HKEY_CURRENT_USER\Software\Microsoft\Command Processor
-
добавить строковое значение с именем
AutoRun
и полное путь свой .летучая мышь./файл cmd.например,
%USERPROFILE%\alias.cmd
, заменяя начальный сегмент пути на%USERPROFILE%
полезно для синхронизации между несколькими машинами.
таким образом, каждый раз при запуске cmd загружаются псевдонимы.
для полноты, вот шаблон, чтобы проиллюстрировать вид псевдонимов, которые можно найти полезными.
@echo off
:: Temporary system path at cmd startup
set PATH=%PATH%;"C:\Program Files\Sublime Text 2\"
:: Add to path by command
DOSKEY add_python26=set PATH=%PATH%;"C:\Python26\"
DOSKEY add_python33=set PATH=%PATH%;"C:\Python33\"
:: Commands
DOSKEY ls=dir /B
DOSKEY sublime=sublime_text $*
::sublime_text.exe is name of the executable. By adding a temporary entry to system path, we don't have to write the whole directory anymore.
DOSKEY gsp="C:\Program Files (x86)\Sketchpad5\GSP505en.exe"
DOSKEY alias=notepad %USERPROFILE%\Dropbox\alias.cmd
:: Common directories
DOSKEY dropbox=cd "%USERPROFILE%\Dropbox$*"
DOSKEY research=cd %USERPROFILE%\Dropbox\Research\
- отметим, что
$*
синтаксис работает после строки каталога, а также исполняемый файл, который принимает аргументы. Таким образом, в приведенном выше примере пользовательская командаdropbox research
указывает на же каталог какresearch
. - как отметил Rivenfall, рекомендуется включить команду, которая позволяет удобно редактировать env.файл cmd. См.
alias
выше. Если вы находитесь в сеансе cmd, введитеcmd
перезапустить cmd и перезагрузить env.файл cmd.
когда я искал в интернете ответ на вопрос, каким-то образом дискуссии были либо сосредоточены только на настойчивости, либо на некотором использовании только DOSKEY. Я надеюсь, что кто-то будет извлеките пользу из этих двух аспектов, находясь здесь вместе!
здесь .reg
файл, который поможет вам установить env.cmd
. Теперь он установлен в качестве примера для папки dropbox, как предложено выше.
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Command Processor]
"AutoRun"="%USERPROFILE%\Dropbox\dev\misc\env.cmd"
вам нужно передать параметры, попробуйте это:
doskey np=notepad++.exe $*
редактировать (отвечая на комментарий Ромонова) Q:есть ли способ заставить командную строку помнить, поэтому мне не нужно запускать это каждый раз, когда я открываю новую командную строку?
doskey
- текстовая команда, интерпретируемая процессором команд (например, cmd.exe), он не может знать, чтобы изменить состояние в каком-то другом процессе (особенно тот, который не запущен еще.)
люди, которые используют doskey
чтобы настроить исходные среды командной оболочки, обычно используйте /K
опция (часто через ярлык) для запуска пакетного файла, который выполняет все общие настройки (например, заголовок окна, цвета и т. д.).
cmd.exe /K env.cmd
env.cmd:
title "Foo Bar"
doskey np=notepad++.exe $*
...
если вы просто собираетесь для некоторых простых команд, вы можете выполнить следующие действия:
- создайте папку под названием C:\Aliases
- добавить C:\Aliases к вашему пути (так что любые файлы в нем будут найдены каждый раз)
- создать .летучая мышь!--9--> файл в C:\Aliases для каждого из псевдонимов вы хотите
возможно, излишне, но в отличие от (в противном случае отличный) ответ от @Argyll, это решает проблему эта загрузка каждый раз.
например, у меня есть файл с названием dig2.летучая мышь!--9--> С в нем следующее:
@echo off
echo.
dig +noall +answer %1
код np файл будет иметь только следующее:
@echo off
echo.
notepad++.exe %1
FWIW, у меня около 20 псевдонимов (отдельно .файлы bat) в моем C:\Aliases каталог-я просто создаю новые по мере необходимости. Может, и не самый аккуратный, но работает отлично.
обновление: за отличное предложение от пользователя @Mav, это даже лучше использовать %*, а не %1, поэтому вы можете передать команде несколько файлов, например:
@echo off
echo.
notepad++.exe %*
таким образом, вы могли бы сделать это:
np c:\temp\abc.txt c:\temp\def.txt c:\temp\ghi.txt
и он откроет все 3 файла.
учитывая, что вы добавили notepad++.exe для переменной PATH, это очень просто.
Создайте файл в папке System32 с именем np.bat
следующий код:
@echo off
call notepad++.exe %*
на %*
передает все аргументы, которые вы даете до .
EDIT: Вам понадобится доступ администратора для сохранения файлов в папку System32, которая была немного шаткой для меня. Я просто создал файл где-то еще и перенес его в System32 вручную.
альтернативно вы можете использовать cmder
что позволяет добавлять псевдонимы так же, как linux:
alias subl="C:\Program Files\Sublime Text 3\subl.exe" $*
кроме того, вы можете создать псевдоним.cmd в вашем пути (например C:\Windows) с командой
@echo %2 %3 %4 %5 %6 > %windir%\%1.cmd
как только вы сделаете это, вы можете сделать что-то вроде этого:
alias nameOfYourAlias commands to run
и после этого вы можете ввести строку comman
nameOfYourAlias
это позволит выполнить
commands to run
но лучший способ для меня-просто добавить путь к программе.
setx PATH "%PATH%;%ProgramFiles%\Sublime Text 3" /M
и теперь я бегу возвышенный, как
subl index.html
псевдонимы консоли в Windows 10
чтобы определить псевдоним консоли, использовать Doskey.exe
чтобы создать макрос или использовать .
doskey
doskey test=cd \a_very_long_path\test
также передать параметры добавить $*
в конце: doskey short=longname $*
AddConsoleAlias
AddConsoleAlias( TEXT("test"),
TEXT("cd \<a_very_long_path>\test"),
TEXT("cmd.exe"));
подробнее здесь Консоль Псевдонимы, Doskey, параметры
на самом деле, я пойду вам лучше и впущу вас в небольшую технику, которую я использовал с тех пор, как я программировал на Amiga. On любой новая система, которую вы используете, будь то личная или профессиональная, Шаг первый-создать две папки: C:\BIN и C:\BATCH - ... Затем измените оператор path, чтобы поместить оба в начале в порядке C:\BATCH;C:\BIN; [остаток пути].
сделав это, если у вас мало утилит, которые вам нужны, чтобы просто скопировать их в C:\BIN папка, и они на вашем пути. Чтобы временно переопределить эти назначения, можно добавить пакетный файл с тем же именем, что и исполняемый файл C:\BATCH папка и путь найдут его перед файлом в C:\BIN - ... Это должно покрыть все, что вам когда-либо понадобится сделать.
конечно, в наши дни канонический правильный способ сделать это-создать символическое соединение с файлом, но применяется тот же принцип. Есть еще небольшой дополнительный бонус. Если хочешь ... поместите что-то в систему, которая конфликтует с чем-то уже на пути, поместив его в C:\BIN или C:\Batch папка будет просто pre-empt оригинал-позволяет переопределять вещи временно или постоянно или переименовывать вещи в имена, с которыми вам удобнее - без фактического изменения оригинала.
расширения roryhewitt ответ.
преимущество использования .cmd-файлы через DOSKEY - это то, что эти "псевдонимы" затем доступны в других оболочках, таких как PowerShell или WSL (Подсистема Windows для Linux).
единственный gotcha с использованием этих команд в bash заключается в том, что может потребоваться немного больше настройки, так как вам может потребоваться выполнить некоторые манипуляции с путем перед вызовом вашего "псевдонима".
например, у меня есть и КМД что это мой "псевдоним" для редактирования файл в Visual Studio
@echo off
if [%1]==[] goto nofiles
start "" "c:\Program Files (x86)\Microsoft Visual Studio
11.0\Common7\IDE\devenv.exe" /edit %1
goto end
:nofiles
start "" "C:\Program Files (x86)\Microsoft Visual Studio
11.0\Common7\IDE\devenv.exe" "[PATH TO MY NORMAL SLN]"
:end
который запускает VS (в этом случае VS2012-но настраивается по вкусу), используя мой "нормальный" проект Без файла, но когда данный файл попытается прикрепиться к работающему VS, открыв этот файл "в этом проекте", а не запустив новый экземпляр VS.
для использования этого из bash я затем добавляю дополнительный уровень косвенности, так как" vs Myfile " не всегда будет работать
alias vs='/usr/bin/run_visual_studio.sh'
который регулирует пути перед вызовом и УМК
#!/bin/bash
cmd.exe /C 'c:\Windows\System32\vs.cmd' "`wslpath.sh -w -r `"
таким образом, я могу просто сделать
vs SomeFile.txt
в командной строке, Power Shell или bash, и он открывается в моей запущенной Visual Studio для редактирования (что просто избавляет Мой бедный мозг от необходимости иметь дело с командами VI или некоторыми такими, когда я только что редактировал в VS в течение нескольких часов).
во-первых, вы можете создать файл с именем np.cmd и поместите его в папку, которая находится в списке поиска пути. Затем отредактируйте np.cmd-файл, как показано ниже:
@echo off
notepad++.exe
Это решение не подходяще, но служит цели в некоторых случаях.
сначала создайте папку и добавьте ее в свой системный путь. Перейти к исполняемому файлу программы, которую вы хотите создать псевдоним. Щелкните правой кнопкой мыши и отправить на рабочий стол( Создать Ярлык). Переименуйте ярлык на любое удобное псевдонимное имя. Теперь, возьмите ярлык и поместите в папку.
из run prompt вы можете ввести имя ярлыка напрямую, и вы можете открыть программу для вы. Но из командной строки вам нужно добавить .lnk и нажмите Enter, программа будет открыта.
вы хотите создать псевдоним, просто набрав:
c:\>alias kgs kubectl get svc
Created alias for kgs=kubectl get svc
и используйте псевдоним следующим образом:
c:\>kgs alfresco-svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
alfresco-svc ClusterIP 10.7.249.219 <none> 80/TCP 8d
добавьте следующую строку alias.bat
файл к вам путь. Он просто создает дополнительные пакетные файлы в том же каталоге, что и сам.
@echo off
echo.
for /f "tokens=1,* delims= " %%a in ("%*") do set ALL_BUT_FIRST=%%b
echo @echo off > C:\Development\alias-script\%1.bat
echo echo. >> C:\Development\alias-script\%1.bat
echo %ALL_BUT_FIRST% %%* >> C:\Development\alias-script\%1.bat
echo Created alias for %1=%ALL_BUT_FIRST%
пример созданного пакетного файла с именем kgs.bat
- это:
@echo off
echo.
kubectl get svc %*
использование doskey-правильный способ сделать это, но он сбрасывается, когда окно командной строки закрыто. Вам нужно добавить эту строку к чему-то вроде .bashrc и эквивалент. Поэтому я сделал следующее:--1-->
- добавить "C:\Program файлы (x86)\Notepad++" для переменной системного пути
- сделайте копию notepad++.exe (в той же папке, конечно) и переименовать его в np.exe
работает просто отлично!