Jak otworzyć program za pomocą wiersza polecenia w systemie Windows 8?

17

Załóżmy, że mam program o nazwie, any_program.exea mój dysk systemu operacyjnego to C:. Lokalizacja programu toD:\Any_Folder\any_program.exe

Jak uruchomić / uruchomić ten program za pomocą wiersza polecenia w systemie Windows 8?

Wypróbowałem wiersz poleceń START any_program.exe, ale pokazuje mi to błąd

System Windows nie może znaleźć „any_program.exe”. Upewnij się, że nazwa została wpisana poprawnie, a następnie spróbuj ponownie.

Nawiasem mówiąc, działał doskonale w systemie Windows 7. A jeśli piszę START notepad.exelub START firefox.exe(Firefox nie jest zainstalowany na dysku C:), działa w systemie Windows 8.

Ahmadul Hoq
źródło
To naprawdę nie ma nic wspólnego z Windows 8 , prawda?
Joey,
Chyba tak. W Windows 7 działałaby tylko ścieżka. Ale w Windows 8 ścieżka programu musi znajdować się między cudzysłowami (co odkryłem), albo pokazuje błąd, że nie może zlokalizować programu (jeśli ścieżka nie jest zarejestrowana w zmiennej środowiskowej PATH lub w Rejestr aplikacji).
Ahmadul Hoq
2
@AhmadulHoq Windows 7 zachowuje się dokładnie w ten sam sposób, o ile wiem. Prawdopodobnie miałeś plik w jednym z tych miejsc.
Bob

Odpowiedzi:

24

Istnieją trzy podstawowe sposoby uruchamiania „polecenia” w wierszu polecenia.

  • wbudowane ( „komendy wewnętrzne” )

    Są to polecenia wbudowane w sam cmd i nie wymagają zewnętrznego wywołania programu. Nie wykonują również wyszukiwania i zawsze będą wykonywane z najwyższym priorytetem, jeśli zostaną dopasowane. Możesz ominąć wbudowane pliki, zawijając je w cudzysłowie: echowywołuje wbudowane, ale szukałby "echo"następujących reguł cmd.

  • Bezpośrednie wywołanie

    Dzieje się tak, gdy bezpośrednio określasz nazwę programu (bez ścieżki). Na przykład, jeśli uruchomisz cmd( cmd.exe) lub ipconfig( ipconfig.exe) po znaku zachęty, bezpośrednio wywołujesz polecenie zewnętrzne. Wykonuje ograniczone wyszukiwanie zaimplementowane całkowicie w wierszu polecenia, w następującej kolejności:

    • Bieżący katalog.
    • Katalogi wymienione w zmiennej środowiskowej PATH.

    (dzięki dxiv za komentarze)

  • Poprzez startpolecenie

    Podczas próby wykonania pliku za pomocą startpolecenia wiersz polecenia nie wykonuje żadnego wyszukiwania. Zamiast tego przekazuje nazwę pliku (i argumenty) do samego systemu Windows (za pośrednictwem ShellExecuteExwywołania interfejsu API), który musi następnie wyszukać lokalizację pliku. Jest kilka miejsc, które wyszukuje w następującej kolejności:

    • Aktualny katalog roboczy
    • Katalog Windows
    • Katalog Windows \ System32
    • Katalogi wymienione w zmiennej środowiskowej PATH
    • Ścieżki aplikacji zdefiniowane w rejestrze

    Zauważ, że okno dialogowe Uruchom również korzysta z tej metody wyszukiwania.


Zwykle możesz albo przejść do lokalizacji pliku za pomocą cd /d D:\Any_Folder( /doznacza zmienić dysk) i po prostu uruchomić any_program.exe. Alternatywnie możesz podać pełną ścieżkę D:\Any_Folder\any_program.exe.

Jeśli chcesz zacząć start any_program.exe, masz kilka opcji:

  • Możesz umieścić go w katalogach Windows lub System32 lub w dowolnym katalogu w zmiennej środowiskowej PATH.
  • Możesz dodać katalog, w którym się znajduje ( D:\Any_Folder) do zmiennej środowiskowej PATH, zobacz to pytanie, aby uzyskać szczegółowe informacje.
  • Możesz dodać go do klucza rejestru Ścieżki aplikacji, podobnie jak Notatnik i Firefox. Ścieżki aplikacji łączą słowo kluczowe pliku (takie jak firefox.exe) z pełną ścieżką do pliku, w przeciwieństwie do innych opcji dotyczących katalogów. Zobacz tutaj, aby uzyskać więcej informacji.
Kok
źródło
3
Dla kompletności należy zauważyć, że uruchamianie programu bezpośrednio w wierszu polecenia, ponieważ any_program.exenie przeszukuje on klucza Ścieżki aplikacji, podczas uruchamiania go tak, jak start any_program.exenp. W domyślnej instalacji Win7, wpisanie wordpadw wierszu powoduje not recognizedbłąd, podczas start wordpadpomyślnego uruchamiania WordPada ( na podstawie klucza Ścieżki aplikacji). Powodem technicznym jest to, że połączona strona odwołuje się do ShellExecuteEx (która startużywa), a CreateProcess (który wykorzystuje bezpośrednie wykonanie) wyraźnie wspomina, że ​​Ścieżki aplikacji nie są przeszukiwane.
dxiv
@dxiv Thanks. Okazuje się, że bezpośrednie wywołanie za pomocą cmd przeszukuje tylko katalogi wymienione w cwd i PATH. Zaraz się poprawię.
Bob
1
Dzięki, to było szybkie za 3-letni spóźniony komentarz ;-) Odpowiednim dokumentem-link jest msdn.microsoft.com/en-us/library/windows/desktop/ms682425.aspx, ale nie miałem miejsca na dołączenie go w poprzednim komentarzu. Logika wyszukiwania jest wymieniona w # 1-6 w lpCommandLine.
dxiv
1
@dxiv Dzięki za link. Zredagowałem to również w, chociaż wydaje się, że nie pasuje do mojego zaobserwowanego zachowania ... (spróbuj: set path=następnie cmdnie można go znaleźć, ale start cmddziała, ponieważ nadal szuka ścieżek poza zmienną env).
Bob
1
Dzięki za dwukrotne sprawdzenie. Rzeczywiście jest tak, że bezpośrednie wykonanie cmd nie przeszukuje domyślnie katalogów Windows / system, a myliłem się, wskazując dokumenty CreateProcess. Wygląda na to, że cmd ma własną logikę, zgodnie z sekcją „Sekwencja wyszukiwania poleceń” pod technet.microsoft.com/en-us/library/... datowaną co najmniej NT razy, i najprawdopodobniej na zawsze wcześniej.
dxiv
7
start D:\Any_Folder\any_program.exe

lub gdy ścieżka lub plik zawiera spacje

start "" "D:\Any_Folder\any_program.exe"

start any_program.exedziała tylko dla tych programów, które znajdują się w %PATH%zmiennej środowiskowej lub są zarejestrowane w rejestrze klucza HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Pathslub jego HKEY_CURRENT_USERanalogu.

Maximus
źródło
5

Masz dwie opcje:

  1. Dodaj program do swojej %PATH%zmiennej
  2. Używaj cudzysłowów w skrócie

Szczegół:

Dodawanie any_program.exedo ścieżki:

  1. Przejdź do „Panelu sterowania” -> „Zaawansowane ustawienia systemu”
    Zaawansowane ustawienia systemu
  2. Przejdź do zakładki Zaawansowane
    Ustawienia systemowe

  3. Kliknij „Zmienne środowiskowe”. Dodaj folder, w którym znajduje się any_program.exe. Edytuj zmienną PATH i dodaj folder na końcu, oddzielając go;
    zmienna ścieżki

  4. Możesz teraz użyć any_program.exe w oknie dialogowym uruchamiania (spróbuj się wylogować i wrócić, aby upewnić się, że zmiany zmiennej ścieżki są używane)

Korzystanie z pełnej ścieżki

Zamiast używać any_program.exew oknie dialogowym Uruchom, musisz użyć pełnej ŚCIEŻKI. Wpisz D:\Stuff\App\any_program.exezamiast tego okno dialogowe uruchamiania.

Nemo
źródło
te zrzuty ekranu są WAAAY za duże. Czy masz ich w rozsądnej wielkości?
Journeyman Geek
Pracuję nad tym ...
Nemo,
Katalogi ścieżek w systemie Windows są oddzielone średnikami ( ;), a nie dwukropkami ( :) ...
Bob
Miałem to w głowie, ale nadal źle je wpisałem.
Nemo,
Widocznie zrzuty ekranu z c-sharpcorner.com/UploadFile/6cde20/… . Zrzuty ekranu są okropne
Journeyman Geek
1
  1. Otwórz wiersz polecenia
  2. Wpisz nazwę programu, który chcesz uruchomić. Jeśli jest na zmiennej systemowej PATH, zostanie wykonany. Jeśli nie, musisz wpisać pełną ścieżkę do programu. Na przykład, aby uruchomić D: \ Any_Folder \ any_program.exe, wpisz D: \ Any_Folder \ any_program.exe w wierszu polecenia i naciśnijEnter
Rakib Ansary
źródło
Haha niezła sztuczka!
Ahmadul Hoq
1

Używam jeszcze prostej metody. . .
Skopiuj skrót pliku do C: \ users \ name, a następnie wpisz nazwę skrótu w oknie dialogowym uruchamiania. . . . .

prad_
źródło
0

Myślę, że musisz dodać ścieżkę do zmiennej PATH w zmiennych systemowych

pratnala
źródło
0

Użyj CMD, aby to zrobić zamiast GUI.

  1. Udostępnianie położenia pliku wykonywalnego w CMD, tj. Tworzenie PATHzmiennej:

    Na przykład:

    • Scenariusz: chcesz otworzyć program Acrobat z CMD
    • USTAW ŚCIEŻKĘ: W typie CMD

      SET ACROBAT="C:\Program Files (x86)\Adobe\Acrobat 11.0\Acrobat"
      
  2. Wykonywanie pliku z CMD:

    W typie CMD:

    START ACROBAT
    

Otóż ​​to !!!
Mam nadzieję, że to było pomocne.

DnyanDeep Taur
źródło