Как установить рабочий каталог исполняемого файла через командную строку перед его выполнением?


35

Если я запускаю программу в командной строке, местоположение которой определяется с помощью переменной среды Path , рабочий каталог программы обычно устанавливается в каталог установки.

Я хотел бы запустить такую ​​программу из окна консоли и установить ее рабочий каталог в текущий или другой явный каталог. Я смог сделать это, временно скопировав программу в мой рабочий каталог - есть ли другой способ сделать это в средах cmd.exe или powershell.exe?

Аналогично этой задаче оболочка Windows заключается в создании ярлыка и соответствующей настройке свойства «Start In».

Ответы:


40

Чтобы явно указать рабочий каталог, решением PowerShell было бы использовать Start-Processкомандлет с -WorkingDirectoryпараметром.

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

Используя псевдоним start, позиционный параметр и частичное имя параметра, это можно записать как:

start notepad.exe -wo c:\temp

CMD также имеет STARTкоманду. Для этого используйте /Dпараметр, чтобы указать рабочий каталог:

START /D c:\temp notepad.exe

6

Ниже будет работать, сделать соответствующие замены и сохранить его с .cmdрасширением.

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

Поместите этот пакетный файл в директорию, %PATH%и вы сможете вызывать его из любого cmd.exeэкземпляра.


1
Обратите внимание, что фанки могут возникнуть, если рабочий каталог и исполняемый файл не находятся в одном разделе / ​​диске.
MBraedley

2
@LawrenceC, однако для этого решения требуется временный файл. Было бы лучше, если бы это можно было сделать без использования временных файлов
Pacerier
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.