¿Cómo configuro el directorio de trabajo de un ejecutable a través de la línea de comando, antes de ejecutarlo?

35

Si ejecuto un programa en la línea de comandos cuya ubicación se resuelve a través de la variable de entorno Path , el directorio de trabajo del programa generalmente se establece en su directorio de instalación.

Me gustaría ejecutar dicho programa desde una ventana de consola y establecer su directorio de trabajo en el directorio actual u otro directorio explícito. Pude hacer esto copiando temporalmente el programa en mi directorio de trabajo. ¿Hay otra forma de lograr esto dentro de los entornos cmd.exe o powershell.exe?

La analogía del shell de Windows para esta tarea es crear un acceso directo y establecer la propiedad "Iniciar en" en consecuencia.

Steve Guidi
fuente

Respuestas:

40

Para establecer explícitamente el directorio de trabajo, una solución de PowerShell sería usar el Start-Processcmdlet con el -WorkingDirectoryparámetro.

Start-Process -FilePath notepad.exe -WorkingDirectory c:\temp

Usando el alias start, el parámetro posicional y el nombre del parámetro parcial, esto podría escribirse como:

start notepad.exe -wo c:\temp

CMD también tiene un STARTcomando. Para esto, use el /Dparámetro para especificar el directorio de trabajo:

START /D c:\temp notepad.exe
Rynant
fuente
6

Lo siguiente funcionará, hará las sustituciones apropiadas y guárdelo con una .cmdextensión.

@echo off 
C:
chdir C:\desired\directory
C:\full\path\of\command.exe

Coloque este archivo por lotes en un directorio en su %PATH%y debería poder invocarlo desde cualquier cmd.exeinstancia.

LawrenceC
fuente
1
Tenga en cuenta que pueden ocurrir problemas si el directorio de trabajo y el ejecutable no están en la misma partición / unidad.
MBraedley
2
@LawrenceC, sin embargo, esta solución requiere un archivo temporal. Es mejor si esto se puede lograr sin archivos temporales
Pacerier