Comment ouvrir un programme via l'invite de commande dans Windows 8?

17

Supposons que j'ai un programme nommé any_program.exeet que mon lecteur de système d'exploitation soit C:. L'emplacement du programme estD:\Any_Folder\any_program.exe

Comment démarrer / exécuter ce programme via l'invite de commande dans Windows 8?

J'ai essayé la ligne de commande START any_program.exe, mais cela me montre une erreur

Windows ne peut pas trouver 'any_program.exe'. Assurez-vous d'avoir correctement tapé le nom, puis réessayez.

Soit dit en passant, cela fonctionnait parfaitement sous Windows 7. Et, si je tape START notepad.exeou START firefox.exe(Firefox n'est pas installé dans le lecteur C:), il fonctionne sous Windows 8.

Ahmadul Hoq
la source
Cela n'a rien à voir avec Windows 8 en particulier, n'est-ce pas?
Joey
Je suppose que oui. Dans Windows 7, seul le chemin aurait fonctionné. Mais dans Windows 8, le chemin du programme doit être entre guillemets (ce que j'ai découvert), ou il indique une erreur qu'il n'a pas pu localiser le programme (si le chemin n'est pas enregistré dans la variable d'environnement PATH ou dans Registre d'application).
Ahmadul Hoq
2
@AhmadulHoq Windows 7 se comporte exactement de la même manière, à ma connaissance. Vous aviez probablement le dossier dans l'un de ces endroits.
Bob

Réponses:

24

Il existe trois méthodes de base pour exécuter une «commande» dans l'invite de commandes.

  • builtins ( "commandes internes" )

    Ce sont des commandes intégrées à cmd lui-même et ne nécessitent pas d'appel de programme externe. Ils n'effectuent pas non plus de recherche et seront toujours exécutés avec la priorité la plus élevée s'ils correspondent. Vous pouvez contourner les commandes internes en enveloppant le nom de l'exécutable entre guillemets: echoappelle la commande intégrée, mais "echo"recherche les règles cmd suivantes.

  • Invocation directe

    C'est lorsque vous spécifiez directement un nom de programme (sans chemin d'accès). Par exemple, si vous exécutez cmd( cmd.exe) ou ipconfig( ipconfig.exe) à l'invite, vous appelez directement la commande externe. Cela effectue une recherche limitée implémentée entièrement dans l'invite de commandes, dans cet ordre:

    • Le répertoire courant.
    • Les répertoires répertoriés dans la variable d'environnement PATH.

    (merci à dxiv pour les commentaires)

  • À travers le start commande

    Lorsque vous essayez d'exécuter un fichier via la startcommande, l'invite de commandes n'effectue aucune recherche. Au lieu de cela, il transmet le nom de fichier (et les arguments) à Windows lui-même (via l' ShellExecuteExappel d'API), qui doit ensuite rechercher l'emplacement du fichier. Il recherche plusieurs endroits dans l'ordre suivant:

    • Répertoire de travail actuel
    • Répertoire Windows
    • Répertoire Windows \ System32
    • Répertoires répertoriés dans la variable d'environnement PATH
    • Chemins d'accès définis par le registre

    Notez que la boîte de dialogue Exécuter utilise également cette méthode de recherche.


Normalement, vous pouvez soit naviguer vers l'emplacement du fichier avec cd /d D:\Any_Folder( /dsignifie changer de lecteur) et simplement exécuter any_program.exe. Alternativement, vous pouvez spécifier le chemin completD:\Any_Folder\any_program.exe .

Si vous voulez commencer par start any_program.exe, vous avez deux options:

  • Vous pouvez le placer dans les répertoires Windows ou System32, ou dans n'importe quel répertoire de la variable d'environnement PATH.
  • Vous pouvez ajouter le répertoire dans lequel il se trouve ( D:\Any_Folder) à la variable d'environnement PATH, voir cette question pour plus de détails.
  • Vous pouvez l'ajouter à la clé de registre App Paths, comme le fait le Bloc-notes et Firefox. Les chemins d'application lient un mot-clé de fichier (tel que firefox.exe) au chemin complet du fichier, contrairement aux autres options qui traitent des répertoires. Voir ici pour plus d'informations.
Bob
la source
3
Pour être complet, il convient de noter que l'exécution d'un programme directement à l'invite de commandes any_program.exene recherche pas la clé App Paths, tout en l'exécutant comme start any_program.exepar exemple sur une installation par défaut de Win7, la saisie wordpadà l'invite donne une not recognizederreur, tout en start wordpadlançant avec succès Wordpad ( basé sur sa clé App Paths). La raison technique est que la page liée fait référence à ShellExecuteEx (qui startutilise) tandis que CreateProcess (que l'exécution directe utilise) mentionne spécifiquement que les chemins d'application ne sont pas recherchés.
dxiv
@dxiv Merci. Il s'avère que l'invocation directe via cmd ne recherche que les répertoires cwd et PATH. Je modifierai sous peu.
Bob
1
Merci, cela a été rapide pour un commentaire tardif de 3 ans ;-) Le lien docs pertinent est msdn.microsoft.com/en-us/library/windows/desktop/ms682425.aspx mais je n'avais pas de place pour l'inclure dans le commentaire précédent. La logique de recherche est répertoriée dans # 1-6 sous lpCommandLine.
dxiv
1
@dxiv Merci pour le lien. J'ai également édité cela dans, bien qu'il ne semble pas correspondre à mon comportement observé ... (essayez: set path=suivi de cmdne le trouve pas, mais start cmdfonctionne car il recherche toujours les chemins en dehors de la var env).
Bob
1
Merci d'avoir vérifié deux fois. Il est en effet vrai que l'exécution directe de cmd ne recherche pas les répertoires Windows / système par défaut, et j'ai eu tort de pointer vers les documents CreateProcess. Semble que cmd a sa propre logique, selon la section "Séquence de recherche de commandes" sous technet.microsoft.com/en-us/library/… datant d'au moins NT fois, et très probablement pour toujours.
dxiv
7
start D:\Any_Folder\any_program.exe

ou, lorsque le chemin ou le fichier contient des espaces

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

start any_program.exene fonctionne que pour les programmes, qui sont situés dans %PATH%la variable d'environnement, ou enregistrés dans le registre dans la clé HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Pathsou son HKEY_CURRENT_USERanalogue.

Maximus
la source
5

Vous avez deux options:

  1. Ajoutez le programme à votre %PATH%variable
  2. Utilisez des guillemets dans votre raccourci

Détail:

Ajout any_program.exeau chemin:

  1. Allez dans "Panneau de configuration" -> "Paramètres système avancés"
    Réglages avancés du système
  2. Accédez à l'onglet Avancé
    Les paramètres du système

  3. Cliquez sur "Variables d'environnement" Ajoutez le dossier dans lequel réside any_program.exe. Modifiez la variable PATH et ajoutez le dossier à la fin, séparé par un;
    variable de chemin

  4. Vous pouvez maintenant utiliser any_program.exe dans la boîte de dialogue d'exécution (essayez de vous déconnecter et de vous reconnecter pour vous assurer que les modifications de vos variables de chemin sont utilisées.)

Utilisation du chemin complet

Au lieu d'utiliser any_program.exedans la boîte de dialogue Exécuter, vous devez utiliser le CHEMIN complet. Tapez donc D:\Stuff\App\any_program.exeplutôt la boîte de dialogue d'exécution.

Nemo
la source
ces captures d'écran sont trop grandes. Ça vous dérange de les avoir à une taille raisonnable?
Journeyman Geek
Travailler dessus ...
Nemo
Les répertoires de chemin sous Windows sont délimités par des points-virgules ( ;), pas des deux-points ( :) ...
Bob
J'avais cela en tête, mais je l'ai quand même mal tapé.
Nemo
Des captures d'écran tirées de c-sharpcorner.com/UploadFile/6cde20/… apparemment. Les captures d'écran y sont terribles
Journeyman Geek
1
  1. Ouvrir l'invite de commande
  2. Tapez le nom du programme que vous souhaitez exécuter. S'il est sur la variable système PATH, il sera exécuté. Sinon, vous devrez saisir le chemin d'accès complet au programme. Par exemple, pour exécuter D: \ Any_Folder \ any_program.exe, tapez D: \ Any_Folder \ any_program.exe à l' invite de commande et appuyez surEnter
Rakib Ansary
la source
Haha belle astuce!
Ahmadul Hoq
1

J'utilise une méthode encore simple. . .
Copiez le raccourci du fichier dans C: \ users \ name, puis tapez le nom du raccourci dans la boîte de dialogue d'exécution. . . . .

prad_
la source
0

Je suppose que vous devez ajouter le chemin d'accès à la variable PATH dans les variables système

pratnala
la source
0

Utilisez CMD pour ce faire au lieu de GUI.

  1. Rendre l'emplacement du fichier exécutable disponible dans CMD, c'est-à-dire créer une PATHvariable:

    Par exemple:

    • Scénario: vous voulez ouvrir Acrobat à partir de CMD
    • SET PATH: In CMD Type

      SET ACROBAT="C:\Program Files (x86)\Adobe\Acrobat 11.0\Acrobat"
      
  2. Exécution du fichier à partir de CMD:

    Dans le type CMD:

    START ACROBAT
    

C'est ça !!!
J'espère que cela a été utile.

DnyanDeep Taur
la source