Làm cách nào để đặt thư mục làm việc của tệp thực thi thông qua dòng lệnh, trước khi thực hiện?


35

Nếu tôi chạy một chương trình trên dòng lệnh có vị trí được giải quyết thông qua biến môi trường Đường dẫn , thư mục làm việc của chương trình thường được đặt thành thư mục cài đặt của nó.

Tôi muốn chạy một chương trình như vậy từ cửa sổ giao diện điều khiển và đặt thư mục làm việc của nó thành thư mục hiện tại hoặc khác. Tôi đã có thể làm điều này bằng cách tạm thời sao chép chương trình vào thư mục làm việc của mình - có cách nào khác để thực hiện việc này trong môi trường cmd.exe hoặc powershell.exe không?

Tương tự vỏ cửa sổ cho nhiệm vụ này là tạo một lối tắt và đặt thuộc tính "Bắt đầu vào" tương ứng.

Câu trả lời:


40

Để thiết lập rõ ràng thư mục làm việc, một giải pháp PowerShell sẽ là sử dụng Start-Processlệnh ghép ngắn với -WorkingDirectorytham số.

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

Sử dụng bí danh start, tham số vị trí và tên tham số một phần, điều này có thể được viết là:

start notepad.exe -wo c:\temp

CMD cũng có một STARTlệnh. Đối với điều này, sử dụng /Dtham số để chỉ định thư mục làm việc:

START /D c:\temp notepad.exe

6

Dưới đây sẽ hoạt động, thực hiện thay thế phù hợp và lưu nó với một .cmdphần mở rộng.

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

Đặt tệp bó này trong một thư mục trong của bạn %PATH%và bạn sẽ có thể gọi nó từ bất kỳ cmd.exetrường hợp nào .


1
Lưu ý rằng funkiness có thể xảy ra nếu thư mục làm việc và thực thi không nằm trên cùng một phân vùng / ổ đĩa.
MBraedley

2
@LawrenceC, tuy nhiên giải pháp này yêu cầu một tệp tạm thời. Sẽ tốt hơn nếu điều này có thể đạt được bằng cách không sử dụng các tệp tạm thời
Pacerier
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.