Bagaimana cara menetapkan direktori kerja yang dapat dieksekusi melalui baris perintah, sebelum menjalankannya?

35

Jika saya menjalankan program pada baris perintah yang lokasinya diselesaikan melalui variabel lingkungan Path , direktori kerja program umumnya diatur ke direktori instalasinya.

Saya ingin menjalankan program seperti itu dari jendela konsol dan mengatur direktori kerjanya ke direktori eksplisit saat ini atau lainnya. Saya dapat melakukan ini dengan menyalin sementara program ke direktori kerja saya - apakah ada cara lain untuk melakukan ini dalam lingkungan cmd.exe atau powershell.exe?

Analogi shell windows untuk tugas ini adalah membuat pintasan dan mengatur properti "Mulai Masuk".

Steve Guidi
sumber

Jawaban:

40

Untuk secara eksplisit mengatur direktori kerja, solusi PowerShell adalah menggunakan Start-Processcmdlet dengan -WorkingDirectoryparameter.

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

Menggunakan alias start, parameter posisi, dan nama parameter parsial, ini dapat ditulis sebagai:

start notepad.exe -wo c:\temp

CMD juga memiliki STARTperintah. Untuk ini, gunakan /Dparameter untuk menentukan direktori kerja:

START /D c:\temp notepad.exe
Berasal
sumber
6

Di bawah ini akan berfungsi, buat penggantian yang sesuai, dan simpan dengan .cmdekstensi.

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

Masukkan file batch ini ke dalam direktori Anda %PATH%dan Anda harus dapat memintanya dari cmd.exeinstance apa pun .

LawrenceC
sumber
1
Perhatikan bahwa funkiness dapat terjadi jika direktori kerja dan executable tidak berada di partisi / drive yang sama.
MBraedley
2
@LawrenceC, Namun solusi ini memerlukan file sementara. Lebih baik jika ini dapat dicapai tanpa menggunakan file sementara
Pacerier