¿Hay alguna forma de especificar un directorio de trabajo para el comando de inicio de tareas?Directorio de trabajo de inicio de tareas de PowerShell
de casos de uso:
Estoy en un directorio, y quiero abrir un archivo con Emacs para su edición. Si hago esto directamente, bloqueará PowerShell hasta que cierre Emacs. Pero el uso de Start-Job intenta ejecutar Emacs desde mi directorio personal, lo que hace que Emacs abra un archivo nuevo en lugar del que yo quería.
Intenté especificar la ruta completa usando $ pwd, pero las variables en el bloque de script no se resuelven hasta que se ejecutan en el contexto de Start-Job. Entonces, alguna forma de forzar la resolución de las variables en el contexto del shell también sería una respuesta aceptable a esto.
Por lo tanto, esto es lo que he intentado, simplemente para la corrección:
Start-Job { emacs RandomFile.txt }
Start-Job { emacs "$pwd/RandomFile.txt" }
Esto funcionó muy bien. The-ArgumentList es exactamente el tipo de cosa que estaba buscando. – jdmichal
Tenga en cuenta que esto solo funcionará si '$ workingdir' no contiene espacios u otros caracteres especiales. – DiscoInfiltrator
@DiscoInfiltrator: pasar solo '$ workingdir' funciona bien en PowerShell, incluso con espacios incrustados y otros metacaracteres de shell (probablemente esté pensando en shells similares a POSIX); verificar con '$ dir = 'C: \ Archivos de programa \'; función foo() {set-location $ args [0]}; foo $ dir'. – mklement0