Pertanyaan Ubah direktori dalam file batch dengan PowerShell


Saya perlu mengubah direktori menggunakan file batch di PowerShell.

Katakanlah file batch bernama go.bat memiliki dua baris kode. Dan saya di q: direktori.

   c:
   cd c:\abc\def

Ketika saya menjalankan go.bat, Saya masih di q:


4
2018-03-07 18:50


asal


Apa sebenarnya yang tidak berfungsi? Apakah Anda menjalankan file .bat dari PowerShell dan mengharapkannya untuk mengubah PWD dari host PowerShell? - Rynant
Ketika Anda menjalankan file .bat, file batch berjalan dalam proses cmd.exe anak. Ini tidak akan mengubah direktori proses PowerShell induk. - Rynant
SEBUAH .ps1 file adalah skrip PowerShell, bukan apa yang umumnya dikenal sebagai batch (atau file perintah) yang ditafsirkan oleh command.exe dan memiliki .bat atau .cmd ekstensi file. - martineau


Jawaban:


Sementara saya setuju bahwa apa yang Anda lakukan harus bekerja, Anda selalu dapat mencoba cmdlet "set-location" Powershell. Pada dasarnya cara kerjanya sama:

set-location c:\abc\def

4
2018-03-07 19:55



@ set-location berfungsi tetapi tidak berfungsi ketika saya menjalankan perintah dalam file batch. - prosseek


Mencoba:

   cd /D c:\abc\def

Gunakan tombol / D untuk mengubah drive saat ini sebagai tambahan untuk mengubah arus direktori untuk drive - meskipun saya tidak yakin mengapa apa yang Anda coba tidak berfungsi ...

Jika folder tidak ada, Anda akan menerima pesan kesalahan:

The system cannot find the path specified.

Anda dapat melihat beberapa bantuan di cd perintah dengan mengetik cd /?.


2
2018-03-07 19:44





Sudahkah Anda memeriksa bahwa C: \ abc \ def ada?

Di mesin saya mulai dari E: drive

  • C:
  • cd C: \ windows \ system32

bekerja dengan baik


1
2018-03-07 19:03





Ketika Anda menjalankan file batch, PowerShell membuat proses CMD.EXE untuk menjalankan file. Jika Anda mengubah direktori kerja di dalam proses CMD.EXE, itu tidak akan mempengaruhi direktori kerja PowerShell saat ini. Ini berdasarkan desain.


1
2018-04-22 18:42



Apakah ada cara menggunakan PowerShell untuk mengubah perilaku ini, untuk menjalankan file bat dalam proses CMD.EXE aktif? - PJussel


Baru saja mengalami masalah ini, saya ingin memiliki skrip untuk melompat ke direktori yang berfungsi di Powershell dan CMD.

Saya bisa menyelesaikannya dengan membuat skrip dengan nama yang sama, salah satunya adalah skrip powershell dan yang lain file bat:

Powershell

Set-Location C:\abc\def

Batch

cd C:\abc\def

Mari kita katakan skripnya baru saja disebut "def". Jika saya mengetik def di Powershell, itu akan menjalankan versi ps1, jika saya mengetikkannya dalam cmd, itu akan menjalankan kelelawar. Anda harus memiliki file duplikat tetapi Anda bisa menggunakan perintah bernama yang sama di antara shell.


1
2017-12-07 11:20