¿Cómo abro un programa a través del símbolo del sistema en Windows 8?

17

Supongamos que tengo un programa llamado any_program.exey mi unidad de sistema operativo es C:. La ubicación del programa esD:\Any_Folder\any_program.exe

¿Cómo inicio / ejecuto ese programa mediante el símbolo del sistema en Windows 8?

He intentado la línea de comando START any_program.exe, pero me muestra un error que

Windows no puede encontrar 'any_program.exe'. Asegúrese de escribir el nombre correctamente y luego intente nuevamente.

Por cierto, funcionó perfectamente en Windows 7. Y, si escribo START notepad.exeo START firefox.exe(Firefox no está instalado en C: unidad), funciona en Windows 8.

Ahmadul Hoq
fuente
Esto realmente no tiene nada que ver con Windows 8 en particular, ¿verdad?
Joey
Supongo que sí. En Windows 7, solo la ruta habría funcionado. Pero en Windows 8, la ruta del programa debe estar entre comillas (lo que he descubierto), o muestra un error que no pudo localizar el programa (si la ruta no está registrada en la variable de entorno PATH o en Registro de la aplicación).
Ahmadul Hoq
2
@AhmadulHoq Windows 7 se comporta exactamente de la misma manera, que yo sepa. Probablemente tenías el archivo en uno de esos lugares.
Bob

Respuestas:

24

Hay tres formas básicas de ejecutar un "comando" en el símbolo del sistema.

  • incorporados ( "comandos internos" )

    Estos son comandos integrados en el propio cmd y no requieren una invocación de programa externo. Tampoco realizan ninguna búsqueda, y siempre se ejecutarán con la máxima prioridad si coinciden. Puede omitir los builtins envolviendo el nombre del ejecutable entre comillas: echollama al builtin, pero "echo"buscaría las siguientes reglas de cmd.

  • Invocación directa

    Esto es cuando especifica directamente un nombre de programa (sin una ruta). Por ejemplo, si ejecuta cmd( cmd.exe) o ipconfig( ipconfig.exe) en el indicador, está llamando directamente al comando externo. Esto realiza búsquedas limitadas implementadas completamente dentro del símbolo del sistema, en este orden:

    • El directorio actual.
    • Los directorios que se enumeran en la variable de entorno PATH.

    (gracias a dxiv por los comentarios)

  • A través del startcomando

    Cuando intenta ejecutar un archivo a través del startcomando, Símbolo del sistema no realiza ninguna búsqueda. En cambio, pasa el nombre del archivo (y los argumentos) a Windows (a través de la ShellExecuteExllamada a la API), que luego debe buscar la ubicación del archivo. Hay varios lugares en los que busca en el siguiente orden:

    • Directorio de trabajo actual
    • Directorio de Windows
    • Directorio Windows \ System32
    • Directorios listados en la variable de entorno PATH
    • Rutas de aplicación definidas por el registro

    Tenga en cuenta que el cuadro de diálogo Ejecutar también utiliza este método de búsqueda.


Normalmente, puede navegar a la ubicación del archivo con cd /d D:\Any_Folder( /dsignifica cambiar la unidad) y simplemente ejecutar any_program.exe. Alternativamente, puede especificar la ruta completa D:\Any_Folder\any_program.exe.

Si quieres comenzar con start any_program.exe, tienes un par de opciones:

  • Puede colocarlo en los directorios de Windows o System32, o en cualquier directorio de la variable de entorno PATH.
  • Puede agregar el directorio en el que se encuentra ( D:\Any_Folder) a la variable de entorno PATH, consulte esta pregunta para obtener más detalles.
  • Puede agregarlo a la clave de registro de rutas de aplicaciones, como lo hace Notepad y Firefox. App Paths vincula una palabra clave de archivo (como firefox.exe) con la ruta completa al archivo, a diferencia de las otras opciones que tratan con directorios. Ver aquí para más información.
Beto
fuente
3
Para completar, debe tenerse en cuenta que ejecutar un programa en el símbolo del sistema directamente, ya any_program.exeque no busca la clave de rutas de aplicaciones, mientras se ejecuta como lo start any_program.exehace, por ejemplo, en una instalación predeterminada de Win7, al ingresar wordpaden el indicador se produce un not recognizederror, mientras start wordpadse inicia con éxito wordpad ( basado en su clave de rutas de aplicaciones). La razón técnica es que la página vinculada hace referencia a ShellExecuteEx (que startusa) mientras que CreateProcess (que usa la ejecución directa) menciona específicamente que no se buscan rutas de aplicaciones.
dxiv
@dxiv Gracias. Resulta que la invocación directa a través de cmd solo busca en los directorios cwd y PATH. Lo enmendaré en breve.
Bob
1
Gracias, eso fue rápido para un comentario tardío de 3 años ;-) El enlace de documentación relevante es msdn.microsoft.com/en-us/library/windows/desktop/ms682425.aspx pero no tuve espacio para incluirlo en el comentario anterior La lógica de búsqueda se encuentra en el # 1-6 bajo lpCommandLine.
dxiv
1
@dxiv Gracias por el enlace. También lo he editado, aunque no parece coincidir con mi comportamiento observado ... (intente: set path=seguido de cmdno puedo encontrarlo, pero start cmdfunciona ya que todavía busca rutas fuera de la var. Env).
Bob
1
Gracias por doble comprobación. De hecho, es cierto que la ejecución directa de cmd no busca en los directorios de Windows / sistema de forma predeterminada, y me equivoqué al señalar los documentos CreateProcess. Parece que cmd tiene su propia lógica, según la sección "Secuencia de búsqueda de comandos" en technet.microsoft.com/en-us/library/… que se remonta al menos a NT veces, y muy probablemente para siempre.
dxiv
7
start D:\Any_Folder\any_program.exe

o, cuando la ruta o el archivo contiene espacios

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

start any_program.exefunciona solo para aquellos programas, que se encuentran en %PATH%la variable de entorno, o registrados en el registro en la clave HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Pathso su HKEY_CURRENT_USERanálogo.

Maximus
fuente
5

Tienes dos opciones:

  1. Agregue el programa a su %PATH%variable
  2. Usa comillas en tu atajo

Detalle:

Agregando any_program.exea la ruta:

  1. Vaya a "Panel de control" -> "Configuración avanzada del sistema"
    Configuración avanzada del sistema
  2. Vaya a la pestaña Avanzado
    Ajustes del sistema

  3. Haga clic en "Variables de entorno" Agregue la carpeta en la que reside any_program.exe. Edite la variable PATH y agregue la carpeta al final, separada por un;
    variable de ruta

  4. Ahora puede usar any_program.exe en el cuadro de diálogo de ejecución (Intente cerrar sesión y volver para asegurarse de que se utilizan los cambios de la variable de ruta).

Usando ruta completa

En lugar de usarlo any_program.exeen el cuadro de diálogo Ejecutar, debe usar la RUTA completa. Entonces escriba D:\Stuff\App\any_program.exeen el cuadro de diálogo Ejecutar en su lugar.

Nemo
fuente
esas capturas de pantalla son WAAAY a grandes. ¿Te importaría tenerlos a un tamaño razonable?
Journeyman Geek
Trabajando en ello ...
Nemo
Los directorios de ruta en Windows están delimitados por punto y coma ( ;), no con dos puntos ( :) ...
Bob
Tenía eso en mi mente, pero aún así lo escribí mal.
Nemo
Capturas de pantalla tomadas de c-sharpcorner.com/UploadFile/6cde20/… aparentemente. Las capturas de pantalla son terribles
Journeyman Geek
1
  1. Abrir símbolo del sistema
  2. Escriba el nombre del programa que desea ejecutar. Si está en la variable del sistema PATH, se ejecutará. Si no, tendrá que escribir la ruta completa al programa. Por ejemplo, para ejecutar D: \ Any_Folder \ any_program.exe, escriba D: \ Any_Folder \ any_program.exe en el símbolo del sistema y presioneEnter
Rakib Ansary
fuente
Jaja buen truco!
Ahmadul Hoq
1

Estoy usando un método aún simple. . .
Copie el acceso directo del archivo a C: \ users \ name y luego escriba el nombre del acceso directo en el cuadro de diálogo Ejecutar. . . . .

prad_
fuente
0

Supongo que tienes que agregar la ruta a la variable PATH en las variables del sistema

pratnala
fuente
0

Use CMD para hacer esto en lugar de GUI.

  1. Hacer que la ubicación del archivo ejecutable esté disponible en CMD, es decir, crear una PATHvariable:

    Por ejemplo:

    • Escenario: desea abrir Acrobat desde CMD
    • ESTABLECER RUTA: en tipo CMD

      SET ACROBAT="C:\Program Files (x86)\Adobe\Acrobat 11.0\Acrobat"
      
  2. Ejecutando el archivo de CMD:

    En tipo CMD:

    START ACROBAT
    

Eso es !!!
Espero que esto haya sido útil.

DnyanDeur Taur
fuente