Come faccio ad aprire un programma tramite il prompt dei comandi in Windows 8?


17

Supponiamo di avere un programma chiamato any_program.exee che l'unità del mio sistema operativo sia C:. La posizione del programma èD:\Any_Folder\any_program.exe

Come posso avviare / eseguire quel programma tramite il prompt dei comandi in Windows 8?

Ho provato la riga di comando START any_program.exe, ma questo mi mostra un errore

Windows non riesce a trovare "any_program.exe". Assicurati di aver digitato correttamente il nome, quindi riprova.

A proposito, ha funzionato perfettamente in Windows 7. E, se digito START notepad.exeo START firefox.exe(Firefox non è installato in C: unità), funziona in Windows 8.


Questo non ha davvero nulla a che fare con Windows 8 in particolare, vero?
Joey,

Immagino che lo sia. In Windows 7, solo il percorso avrebbe funzionato. Ma in Windows 8, il percorso del programma deve essere tra virgolette (cosa ho scoperto), oppure mostra errore che non è stato in grado di individuare il programma (se il percorso non è registrato nella variabile d'ambiente PATH o in Registro delle app).
Ahmadul Hoq,

2
@AhmadulHoq Windows 7 si comporta esattamente allo stesso modo, per quanto ne so. Probabilmente avevi il file in uno di quei posti.
Bob

Risposte:


24

Esistono tre modi di base per eseguire un "comando" nel prompt dei comandi.

  • builtin ( "comandi interni" )

    Questi sono comandi integrati in cmd stesso e non richiedono un richiamo esterno del programma. Inoltre non eseguono alcuna ricerca e saranno sempre eseguiti con la massima priorità se abbinati. Puoi bypassare i built-in racchiudendo il nome dell'eseguibile tra virgolette: echochiama il built-in, ma "echo"cerca le seguenti regole cmd.

  • Invocazione diretta

    Questo è quando si specifica direttamente un nome di programma (senza un percorso). Ad esempio, se si esegue cmd( cmd.exe) o ipconfig( ipconfig.exe) al prompt, si chiama direttamente il comando esterno. Ciò esegue ricerche limitate implementate interamente all'interno del prompt dei comandi, in questo ordine:

    • La directory corrente.
    • Le directory elencate nella variabile di ambiente PATH.

    (grazie a dxiv per i commenti)

  • Attraverso il startcomando

    Quando si tenta di eseguire un file tramite il startcomando, il prompt dei comandi non esegue alcuna ricerca. Al contrario, passa il nome del file (e gli argomenti) su Windows stesso (tramite la ShellExecuteExchiamata API), che deve quindi cercare la posizione del file. Esistono diversi luoghi in cui cerca nel seguente ordine:

    • Directory di lavoro corrente
    • Directory di Windows
    • Directory Windows \ System32
    • Directory elencate nella variabile d'ambiente PATH
    • Percorsi app definiti dal registro

    Si noti che anche la finestra di dialogo Esegui utilizza questo metodo di ricerca.


Normalmente, puoi navigare verso la posizione del file con cd /d D:\Any_Folder( /dsignifica cambiare unità) ed eseguire any_program.exe. In alternativa, è possibile specificare il percorso completo D:\Any_Folder\any_program.exe.

Se vuoi iniziare con start any_program.exe, hai un paio di opzioni:

  • Puoi inserirlo nelle directory Windows o System32 o in qualsiasi directory nella variabile d'ambiente PATH.
  • È possibile aggiungere la directory in cui si trova ( D:\Any_Folder) alla variabile di ambiente PATH, vedere questa domanda per i dettagli.
  • È possibile aggiungerlo alla chiave del Registro di sistema Percorsi app, come fa Blocco note e Firefox. Percorsi app collega una parola chiave di file (come firefox.exe) al percorso completo del file, a differenza delle altre opzioni che si occupano delle directory. Vedi qui per maggiori informazioni.

3
Per completezza, va notato che l'esecuzione di un programma al prompt dei comandi direttamente in quanto any_program.exenon cerca la chiave Percorsi app, mentre lo esegue come start any_program.exead esempio su un'installazione Win7 predefinita, l'immissione wordpadal prompt dà un not recognizederrore, mentre start wordpadavvia correttamente il wordpad ( basato sulla sua chiave Percorsi app). Il motivo tecnico è che la pagina collegata fa riferimento a ShellExecuteEx (che startutilizza) mentre CreateProcess (che utilizza l'esecuzione diretta) menziona specificamente che i percorsi app non sono cercati.
dxiv

@dxiv Grazie. Si scopre che la chiamata diretta tramite cmd cerca solo nelle directory elencate in cwd e PATH. Modificherò a breve.
Bob

1
Grazie, è stato veloce per un commento in ritardo di 3 anni ;-) Il collegamento docs rilevante è msdn.microsoft.com/en-us/library/windows/desktop/ms682425.aspx ma non avevo spazio per includerlo nel commento precedente. La logica di ricerca è elencata in # 1-6 in lpCommandLine.
dxiv

1
@dxiv Grazie per il link. L'ho anche modificato in, anche se non sembra corrispondere al mio comportamento osservato ... (prova: set path=seguito da cmdnon riesco a trovarlo, ma start cmdfunziona poiché cerca ancora percorsi al di fuori di env var).
Bob

1
Grazie per il doppio controllo. È vero che l'esecuzione diretta di cmd non cerca nelle directory windows / di sistema per impostazione predefinita, e ho sbagliato a indicare i documenti CreateProcess. Sembra che cmd abbia una sua logica, secondo la sezione "Sequenza di ricerca comandi" in technet.microsoft.com/en-us/library/… risalente almeno a NT volte, e molto probabilmente per sempre.
dxiv

7
start D:\Any_Folder\any_program.exe

oppure, quando il percorso o il file contiene spazi

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

start any_program.exefunziona solo per quei programmi, che si trovano nella %PATH%variabile d'ambiente, o registrati nel registro nella chiave HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Pathso nel suo HKEY_CURRENT_USERanalogo.


5

Hai due opzioni:

  1. Aggiungi il programma alla tua %PATH%variabile
  2. Usa le virgolette nel tuo collegamento

Dettaglio:

Aggiunta any_program.exeal percorso:

  1. Vai a "Pannello di controllo" -> "Impostazioni di sistema avanzate"
    Impostazioni avanzate di sistema
  2. Vai alla scheda Avanzate
    Impostazioni di sistema

  3. Fai clic su "Variabili d'ambiente" Aggiungi la cartella in cui risiede any_program.exe. Modifica la variabile PATH e aggiungi la cartella alla fine, separata da a;
    variabile di percorso

  4. Ora è possibile utilizzare any_program.exe nella finestra di dialogo Esegui (provare a disconnettersi e tornare indietro per assicurarsi che vengano utilizzate le modifiche alla variabile di percorso.)

Utilizzando il percorso completo

Invece di utilizzare any_program.exenella finestra di dialogo Esegui, è necessario utilizzare il PERCORSO completo. Quindi digitare D:\Stuff\App\any_program.exeinvece la finestra di dialogo Esegui.


questi screenshot sono WAAAY troppo grandi. Ti dispiace averli di dimensioni ragionevoli?
Journeyman Geek

Ci
sto

Le directory dei percorsi su Windows sono delimitate da punti e virgola ( ;), non da due punti ( :) ...
Bob,

Lo avevo in mente, ma l'ho ancora digitato male.
Nemo,

Schermate tratte da c-sharpcorner.com/UploadFile/6cde20/… apparentemente. Gli screenshot sono terribili
Journeyman Geek

1
  1. Apri il prompt dei comandi
  2. Digita il nome del programma che desideri eseguire. Se è sulla variabile di sistema PATH, verrà eseguito. In caso contrario, dovrai digitare il percorso completo del programma. Ad esempio, per eseguire D: \ Any_Folder \ any_program.exe digitare D: \ Any_Folder \ any_program.exe dal prompt dei comandi e premereEnter

Haha bel trucco!
Ahmadul Hoq,

1

Sto usando un metodo ancora semplice. . .
Copia il collegamento del file in C: \ utenti \ nome e quindi digita il nome del collegamento nella finestra di dialogo Esegui. . . . .


0

Immagino che devi aggiungere il percorso alla variabile PATH nelle variabili di sistema


0

Utilizzare CMD per eseguire questa operazione anziché la GUI.

  1. Rendere disponibile la posizione del file eseguibile in CMD, ad esempio creando una PATHvariabile:

    Per esempio:

    • Scenario: si desidera aprire Acrobat da CMD
    • SET PATH: In CMD Type

      SET ACROBAT="C:\Program Files (x86)\Adobe\Acrobat 11.0\Acrobat"
      
  2. Esecuzione del file da CMD:

    Nel tipo CMD:

    START ACROBAT
    

Questo è tutto !!!
Spero sia stato utile.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.