Страницы

Поиск по вопросам

пятница, 31 января 2020 г.

Как запустить свой exe в командной строке без указания полного пути? [дубликат]

#c_sharp


        
             
                
                    
                        
                            На этот вопрос уже даны ответы здесь:
                            
                        
                    
                
                        
                            Быстрый запуск программы через CMD
                                
                                    (2 ответа)
                                
                        
                                Закрыт 2 года назад.
            
                    
К примеру, в командной строке достаточно написать "calc" и Enter, как появляется
на экране калькулятор. Как сделать так, чтобы мой exe стал таким же "родным" как calc.exe?
Т.е. после указания имени моего exe в командной строке осуществился запуск моей программы
(Пример на скрине)? И еще попутно вопрос.Можно ли как-то узнать откуда стартанул мой
exe? Именно не полный путь, где установлен, а именно как в примере на скрине "С:\Users\Александр".
Т.е. запускаю ехе и в самой программе получаю именно этот путь.

    


Ответы

Ответ 1



Рекомендованный Microsoft способ — ключ реестра App Paths. В ключе реестра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\App Paths (для текущего юзера) или HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths положите подключ MyEXE.exe, а в его значение по умолчанию (Default) типа REG_SZ поместите полный путь к приложению. Вот тут есть код, который сделает это за вас. Проблем у PATH довольно много. Он добавляет к поиску не один файл, а целый каталог. На длину переменной PATH есть установленный лимит, и он может легко исчерпаться. Установка PATH в программах наследуется, а значит, если одна из программ поменяет PATH, то изменения будут видны некоторых приложениям, а некоторым нет.

Ответ 2



Пути, по котором ищутся программы, задаются переменной path. В Windows есть две таких переменных - общесистемная и текущего пользователя. Так же можно для конкретного сеанска консоли изменить эти переменные командой (обращаю внимание, что кавычек нет, несмотря на пробелы в имени: set path c:\my magic folder;%path% Если надо узнать значение, то можно просто ввести D:\Temp\Supertemp>set path Чтобы найти программу, надо использовать команду where: D:\Temp\Supertemp>where calc C:\Windows\System32\calc.exe D:\Temp\Supertemp>where node C:\Program Files\nodejs\node.exe D:\Temp\Supertemp>where webpack C:\Users\Qwert\AppData\Roaming\npm\webpack C:\Users\Qwert\AppData\Roaming\npm\webpack.cmd Если вариантов несколько, обычно (если все программы exe) выполняется первый из списка. В случае с разными расширениями ситуация сложнее и начинает использоваться переменная pathext.

Комментариев нет:

Отправить комментарий