Como faço para definir o diretório de trabalho de um executável através da linha de comando, antes de executá-lo?

28

Se eu executar um programa na linha de comando cuja localização é resolvida através da variável de ambiente Caminho , o diretório de trabalho do programa é geralmente configurado para o seu diretório de instalação.

Eu gostaria de executar um programa desse tipo a partir de uma janela do console e definir seu diretório de trabalho para o diretório atual ou outro diretório explícito. Consegui fazer isso copiando temporariamente o programa para o meu diretório de trabalho - existe outra maneira de fazer isso dentro dos ambientes cmd.exe ou powershell.exe?

A analogia do shell do Windows com essa tarefa é criar um atalho e definir a propriedade "Start In" de acordo.

    
por Steve Guidi 03.03.2012 / 01:53

2 respostas

30

Para definir explicitamente o diretório de trabalho, uma solução do PowerShell seria usar o cmdlet Start-Process com o parâmetro -WorkingDirectory .

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

Usando o alias start , o parâmetro posicional e o nome do parâmetro parcial, isso pode ser escrito como:

start notepad.exe -wo c:\temp

O CMD também possui um comando START . Para isso, use o parâmetro /D para especificar o diretório de trabalho:

START /D c:\temp notepad.exe
    
por 03.03.2012 / 05:00
5

O abaixo irá funcionar, fazer substituições apropriadas e salvá-lo com uma extensão .cmd .

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

Coloque esse arquivo em lote em um diretório no seu %PATH% e você poderá chamá-lo de qualquer cmd.exe instance.

    
por 03.03.2012 / 01:57