Bisakah saya menetapkan PowerShell sebagai 'default' di Windows 7?

9

Saya ingin, secara default, untuk PowerShell diluncurkan bukan dari Command ketika, katakanlah, menjalankan file batch, atau ketika saya "Buka Command Window Here", dll.

Ada saran?

Ipsquiggle
sumber
5
Saya tidak berpikir PowerShell dapat menafsirkan file batch, jadi Anda mungkin tidak harus membuatnya membuka mereka.
nhinkle

Jawaban:

9

Saya baru saja melakukan tes yang sangat cepat dan entri registri berikut akan menambahkan item "PowerShell di sini" ke menu konteks semua folder di explorer:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\PowerShellHere]
@="&PowerShell here"

[HKEY_CLASSES_ROOT\Directory\shell\PowerShellHere\command]
@="cmd.exe /c start \"PS\" powershell.exe -NoExit -Command \"cd \\\"%1\\\"\""

Impor saja ke dalam registri. Saya menggunakan cmd.exeuntuk mem-bootstrap PowerShell untuk menghindari keharusan hard-code path.

Mengenai skrip cmd / file batch. Saya pikir itu tidak masuk akal untuk menjalankan skrip CMD dalam PowerShell secara default. Tetapi mungkin juga dengan memodifikasi HKCR\cmdfile\shell\openkunci registri

SkyBeam
sumber
Terima kasih! Saya akan mencoba ini malam ini. Satu-satunya alasan saya ingin skrip dibuka di PowerShell adalah untuk konsistensi dan kerja sama dengan alat windowing saya. Anda benar bahwa tidak ada alasan praktis yang melekat. ;)
Ipsquiggle
0

Anda tidak akan terlalu jauh dengan menjalankan file batch CMD di PowerShell.

Anda dapat mencoba mengubah %COMSPEC%variabel menjadi titik powershell.exepenggunaan setx, tetapi saya pikir itu tidak akan memakan waktu lama bagi Anda untuk menyadari bahwa ini adalah ide yang sangat buruk dan mengubahnya kembali.

simpan file sebagai * .ps1 bukan * .bat dan itu akan menggunakan PowerShell

paradroid
sumber
1
Mengapa itu ide yang buruk? Hanya penasaran.
Afrazier
@afrazier: Saya belum bereksperimen dengan mengubah %COMSPEC%shell yang tidak kompatibel dengan CMD, tapi saya berasumsi bahwa dengan mengubahnya ke PowerShell akan menghasilkan .cmd/ .batfile yang mencoba dieksekusi di PowerShell, sehingga mereka akan gagal. Saya telah menginstal banyak perangkat lunak yang diperlukan untuk menggunakan file batch, jadi melakukan itu akan menjadi ide yang buruk. Juga, saya sedikit bias, karena saya menggunakan CMD sepanjang waktu (sebenarnya, TCC, yang merupakan superset yang diperluas), untuk pengelolaan file sehari-hari - Saya hanya menggunakan PowerShell untuk hal-hal sistem, walaupun saya memiliki lebih banyak hal untuk dipelajari, karena itu sangat kuat dibandingkan.
paradroid
1
Hanya untuk cekikikan, saya telah berubah %ComSpec%untuk menunjuk ke PowerShell pada sistem Win7 saya. .cmdFile pasangan pertama yang saya uji berfungsi dengan baik. Mereka melibatkan cmdkonstruk-spesifik ( for, manipulasi variabel, if), sehingga PS tampaknya cukup pintar untuk mengetahui kapan perlu memohon cmd.exe.
Afrazier
Misalnya, mengubah %ComSpec%ke PowerShell akan merusak perintah kontrol versi lincah.
Harapan