web-dev-qa-db-fra.com

Comment définir le répertoire de travail d'un exécutable via la ligne de commande avant de l'exécuter?

Si j'exécute un programme sur la ligne de commande dont l'emplacement est résolu par la variable d'environnement Path , le répertoire de travail du programme est généralement défini sur son répertoire d'installation.

Je voudrais exécuter un tel programme depuis une fenêtre de console et définir son répertoire de travail sur le répertoire actuel ou un autre répertoire explicite. J'ai pu le faire en copiant temporairement le programme dans mon répertoire de travail. Existe-t-il un autre moyen de réaliser cela dans les environnements cmd.exe ou powershell.exe?

L’analogie Windows avec cette tâche consiste à créer un raccourci et à définir la propriété "Démarrer dans" en conséquence.

33
Steve Guidi

Pour définir explicitement le répertoire de travail, une solution PowerShell consiste à utiliser l'applet de commande Start-Process avec le paramètre -WorkingDirectory.

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

En utilisant l'alias start, le paramètre de position et le nom de paramètre partiel, cela pourrait être écrit ainsi:

start notepad.exe -wo c:\temp

CMD a également une commande START. Pour cela, utilisez le paramètre /D pour spécifier le répertoire de travail:

START /D c:\temp notepad.exe
37
Rynant

Ce qui suit fonctionnera, effectuera les substitutions appropriées et enregistrez-le avec une extension .cmd.

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

Placez ce fichier de commandes dans un répertoire de votre %PATH% et vous devriez pouvoir l'invoquer à partir de n'importe quelle instance cmd.exe.

6
LawrenceC