Existe-t-il un moyen de spécifier un répertoire de travail à la commande Start-Job?Répertoire de travail de démarrage de PowerShell
cas d'utilisation:
Je suis dans un répertoire, et je veux ouvrir un fichier en utilisant Emacs pour l'édition. Si je le fais directement, il bloquera PowerShell jusqu'à ce que je ferme Emacs. Mais en utilisant Start-Job tente d'exécuter Emacs à partir de mon répertoire personnel, Emacs ouvre donc un nouveau fichier au lieu de celui que je voulais.
J'ai essayé de spécifier le chemin complet en utilisant $ pwd, mais les variables du bloc de script ne sont pas résolues tant qu'elles ne sont pas exécutées dans le contexte de démarrage. Donc, un moyen de forcer la résolution des variables dans le contexte shell serait également une réponse acceptable à cela.
Alors, voici ce que j'ai essayé, juste pour être complet:
Start-Job { emacs RandomFile.txt }
Start-Job { emacs "$pwd/RandomFile.txt" }
Cela a très bien fonctionné. Le -ArgumentList est exactement le genre de chose que je cherchais. – jdmichal
Gardez à l'esprit que cela ne fonctionnera que si $ workingdir ne contient aucun espace ou autre caractère spécial. – DiscoInfiltrator
@DiscoInfiltrator: Passer juste '$ workingdir' fonctionne correctement dans PowerShell, même avec des espaces intégrés et d'autres métacaractères shell (vous pensez probablement à des shells de type POSIX); vérifier avec '$ dir = 'C: \ Program Files \'; function foo() {set-location $ args [0]}; foo $ dir'. – mklement0