Terminal: Tambahkan "buka terminal Windows di sini" ke menu konteks klik kanan

Dibuat pada 30 Mei 2019  ·  235Komentar  ·  Sumber: microsoft/terminal

Tambahkan "buka terminal Windows di sini" ke menu konteks klik kanan?

Kita tahu bahwa, untuk windows 7, secara default ketika kita mengklik "shift + klik kanan dengan mouse" ketika kita masuk ke folder tanpa memilih apapun, kita bisa melihat opsi "buka jendela perintah di sini".

image

Sedangkan untuk windows 10, secara default ketika kita mengklik "shift + klik kanan dengan mouse", kita bisa melihat opsi "buka jendela PowerShell di sini".

Jadi untuk Windows 10 (versi lebih baru dari 1903), bagaimana kita dapat membuat tiga opsi berikut tersedia di menu konteks klik kanan?

  • buka jendela perintah di sini
  • buka jendela PowerShell di sini
  • buka terminal Windows di sini

Menantikan balasan Anda, terima kasih banyak ~

Area-User Interface Help Wanted Issue-Feature Product-Terminal Resolution-Fix-Committed

Komentar yang paling membantu

Sebagai catatan, saya pikir kami lebih suka terminal secara otomatis mendaftarkan pintasan ini atas nama pengguna.

Semua 235 komentar

Jika menambahkannya, saya pikir itu harus memiliki satu lagi opsi pilih di terminal Windows terbuka di

  • Powershell
  • CMD
  • Ubuntu

Saya pikir ini adalah permintaan fitur yang bagus, dan sesuatu yang kami pasti akan menerima bantuan dari komunitas.

Naluri saya mengatakan bahwa ini akan terkait dengan pekerjaan untuk # 689, tetapi saya tidak cukup tahu tentang Win32 untuk memastikannya.

Ini mungkin sesuatu seperti ini: https://www.codeproject.com/Articles/441/The-Complete-Idiot-s-Guide-to-Writing-Shell-Extens

Tapi semoga tanpa memperkenalkan kembali ATL ke basis kode kami ...

Caranya, _way_ lebih mudah dari itu untuk menambahkan satu perintah ke menu konteks folder. Itu hanya kunci registri sederhana.

Misalnya (dan kemudian Anda juga dapat menambahkan ikon, dll)

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\Open Thing Here\command]
@="C:\\thing.exe \"%1\""

untuk aplikasi pacakged ini dideklarasikan di manifes. lihat ini: https://docs.microsoft.com/en-us/uwp/schemas/appxpackage/uapmanifestschema/element-uap-filetypeassociation. Saya tidak berpikir ini mendukung folder tetapi mulai mencari di sini.

Kemungkinan duplikat # 561, tetapi kami akan melacaknya di sini.

@miniksa @ zadjii-msft @ DHowett-MSFT @factormystic @ChrisGuzak

Saya memecahkan masalah sekarang, itu bisa ditutup. Terima kasih banyak untuk semua yang terlibat dalam diskusi ini.

Langkah 0:

Uji apakah dua konstanta di bawah berfungsi dengan baik yang akan digunakan dalam mengikuti langkah-langkah lain.

echo %USERPROFILE%

echo %LOCALAPPDATA%

Jika semuanya bekerja dengan baik di sini, maka kedua konstanta ini dapat digunakan secara langsung di langkah-langkah lain di bawah ini.

Atau silakan lakukan penggantian berikut dalam langkah-langkah di bawah ini:

% USERPROFILE% → C:\Users\[userName]
% LOCALAPPDATA% → C:\Users\[userName]\AppData\Local

Di sini [userName] mewakili nama pengguna Anda, misalnya, nama saya adalah Bruce .

Langkah 1:
Jalankan di bawah barang-barang di CMD :

mkdir "%USERPROFILE%\AppData\Local\terminal"

image

Langkah 2:
Salin icon terminal windows ke folder %USERPROFILE%\AppData\Local\terminal , icon tersebut dapat diperoleh di https://github.com/yanglr/WindowsDevTools/tree/master/awosomeTerminal/icons yang nama filenya wt_32.ico .

Langkah 3:
Simpan konten follwing sebagai wt.reg , lalu jalankan sebagai administrator.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Windows terminal here"
"Icon"="%USERPROFILE%\\AppData\\Local\\terminal\\wt_32.ico"

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="%LOCALAPPDATA%\\Microsoft\\WindowsApps\\wt.exe"

Yang perlu diperhatikan , jika exe yang diperoleh setelah kode bangunan sendiri adalah wtd.exe , Anda perlu mengubah wt.exe menjadi wtd.exe dalam registri di atas.

Langkah 4:
Uji
image

Itu tidak berhasil bagi saya (tidak dapat mengakses kesalahan itu), dan bagi saya itu wtd.exe (bahkan tidak berfungsi).
Dan saya pikir ini bisa menjadi Fitur Terminal.

@ SJang
Saya kira Anda menggunakan versi yang Anda buat sendiri, jadi perlu menggunakan wtd.exe . Untuk versi resmi yang masuk untuk memasukkan Windows Store , wt.exe adalah opsi yang benar di sini. Untuk saat ini, Anda dapat memperoleh versi pratinjau di sini (file .7z bawah https://github.com/yanglr/WindowsDevTools/tree/master/awosomeTerminal ), lalu gunakan wt.exe setelah diinstal. Saya mengadopsi metode ini.

@yanglr Saya telah menggunakan wtd.exe, dan tidak berhasil karena kesalahan tidak dapat mengaksesnya .. Namun, setiap pengguna akhir tidak dapat menambahkan ke registri satu per satu.

@ SJang
Saya kira Anda membuat kode di Debug mode , harap ubah menjadi Release mode , lihat di bawah:
image

@yanglr
Sudah Dibangun pada Rilis.
image

Sebagai catatan, saya pikir kami lebih suka terminal secara otomatis mendaftarkan pintasan ini atas nama pengguna.

@ zadji-ms
Keren, bagus!

Ini belum ditambahkan, jadi saya lebih suka kami membiarkan masalah ini tetap terbuka sampai pekerjaan untuk menambahkannya selesai :)

Dapatkah saya mencobanya jika tidak ada yang mengerjakannya?

@MelulekiDube lakukan untuk itu!

Tip utama saya di sini adalah bahwa kami telah mencoba untuk menjaga TerminalApp lebih mirip UWP, dan melakukan hal-hal seperti Win32 dalam proyek WindowsTerminal. Karena fitur ini mungkin cukup berat Win32, saya mungkin akan menyarankan semacam acara yang dapat diaktifkan App (di TerminalApp) untuk memberi tahu AppHost (di WindowsTerminal) yang harus disiapkan jalan pintas. Sebagai contoh, saya yakin ada peristiwa TitleChanged yang dapat diaktifkan oleh App agar AppHost menyetel judul jendela.

Selain itu, karena Profile bukanlah jenis winrt, mungkin sulit untuk mendapatkan anggotanya langsung dari proyek WindowsTerminal. Anda mungkin harus meminta App mengkomunikasikan bit yang relevan dari Profile dalam acara itu sendiri. Atau, Anda dapat mencoba membuatnya menjadi jenis winrt (lengkap dengan file .idl), tetapi itu mungkin sedikit lebih sulit.

Semoga berhasil!

EDIT: Saya merevisi pernyataan ini menjadi HERE BE DRAGONS . Ada pekerjaan yang mungkin perlu diselesaikan di # 607 / # 1065 sebelum ini bisa dilakukan sama sekali.

Saya khawatir bahwa ini perlu terkait erat dengan # 607, yang masih dalam fase pra-spesifikasi.

@ DHowett-MSFT itu poin yang bagus. Saya juga lupa tentang regresi terbaru di # 1065. Ini sebenarnya mungkin termasuk dalam kategori _hard_ things. Meskipun kami tidak melakukannya per profil, membuka profil default di direktori saat ini tidak akan berfungsi.

Saya bahkan tidak tahu bagaimana kami akan memperbaiki # 1065, tetapi jika kami memperbaikinya, maka secara teoritis kami dapat menemukan beberapa cara untuk membuat contoh Terminal Windows baru menggunakan direktori dari explorer, tetapi itu tidak akan benar-benar menyelesaikan per masalah -profile. hmmmm.

Bisakah sesuatu seperti mengekspos staringDirectory sehingga Anda dapat memasukkannya ke dalam opsi exe?

Ya, itu adalah bagian dari poin # 607.

Hai @yanglr ,
Ini bukan tempat yang tepat untuk berdiskusi. Masalah ini untuk membahas fitur "buka Terminal Windows di sini".

@ DHett-MS
Oh, maaf, dihapus.

Saya pikir akan lebih baik jika tidak hanya "membuka Terminal Windows di sini", tetapi juga "membuka Terminal Windows di sini (Administrator)" karena keduanya digunakan dengan baik oleh semua orang.

Saya berpikir seperti ini,
image
..dan jika itu seperti apa yang saya pikirkan, sepertinya tidak ada tempat untuk menjalankan sebagai Administrator itu.

Saya berpikir seperti ini,
image
..dan jika itu seperti apa yang saya pikirkan, sepertinya tidak ada tempat untuk menjalankan sebagai Administrator itu.

... kecuali jika Anda meletakkan menu utama kedua "Buka WT di sini (Administrator)" dengan item submenu yang sama. Keduanya harusnya opsional, saya pikir.

Saya mengedit registri untuk menambahkan opsi ke menu konteks. Namun, ini terbuka dengan C: \ Users \ username dan bukan direktori saat ini.

@mintu

Saya khawatir bahwa ini perlu terkait erat dengan # 607, yang masih dalam fase pra-spesifikasi.

Bisakah sesuatu seperti mengekspos staringDirectory sehingga Anda dapat memasukkannya ke dalam opsi exe?

Ya, itu adalah bagian dari poin # 607.

wt.exe belum mendukung argumen baris perintah, jadi tidak ada cara untuk menimpa folder tempat profil baru dimulai.

jika saya bisa memberi saran, saya akan mengatakan opsi untuk membuka di PowerShell, CMD dan / atau terminal Linux harus diganti dengan "Buka di terminal windows" karena terminal windows adalah kombinasi dari ketiganya. Kemudian pengguna dapat menyetel defaultnya dari file profile.json .

@yanglr @lllopo @ SJang1

Sesuatu seperti ini _harus_ berfungsi untuk saat ini. Saya menulisnya di PowerShell karena ini untuk skrip ISO Windows Post-Install, tetapi saya tidak melihat masalah dengan menggunakan ini sebagai lawan dari file .reg.

PowerShell:

$Env.terminalDir ='$Env:localAppDir\Microsoft\WindowsApps' # Not really needed (except for icon), as wt.exe in in %PATH%

Invoke-WebRequest -UseBasicParsing "https://github.com/yanglr/WindowsDevTools/raw/master/awosomeTerminal/icons/wt_32.ico" -OutFile "$Env:terminalDir\wt.ico"  # Going to update my own to just grab icon from the appx package

Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\Background\shell\MenuTerminal' -Name 'MUIVerb' -Type String -Value 'Terminals'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\Background\shell\MenuTerminal' -Name 'Icon' -Type String -Value '$Env:terminalDir\wt.ico'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\Background\shell\MenuTerminal' -Name 'ExtendedSubCommandsKey' -Type String -Value 'Directory\\ContextMenus\\MenuTerminal'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\shell\open' -Name 'MUIVerb' -Type String -Value 'PowerShell'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\shell\open' -Name 'Icon' -Type String -Value 'PowerShell.exe'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\shell\open' -Name 'ExtendedSubCommandsKey' -Type String -Value 'Directory\\ContextMenus\\MenuTerminal\\PS'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\PS\shell\open' -Name 'MUIVerb' -Type String -Value 'PowerShell'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\PS\shell\open' -Name 'Icon' -Type String -Value '$Env:terminalDir\wt.ico'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\PS\shell\open\command' -Name '@' -Type String -Value 'wt.exe'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\PS\shell\runas' -Name 'MUIVerb' -Type String -Value 'Elevated PowerShell'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\PS\shell\runas' -Name 'Icon' -Type String -Value '$Env:terminalDir\wt.ico'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\PS\shell\runas' -Name 'HasLUAShield' -Type String -Value ''
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\PS\shell\runas\command'-Name '@' -Type String -Value 'wt.exe'

Dan sesuatu seperti ini _should_ berfungsi ketika seseorang dapat memilih antara CMD dan PowerShell saat meluncurkan Terminal (dengan asumsi ia menggunakan --Profile [CMD | PowerShell] ):

Powershell:

$Env.terminalDir ='$Env:localAppDir\Microsoft\WindowsApps'   # Not really needed (except for icon), as wt.exe in in %PATH%

Invoke-WebRequest -UseBasicParsing "https://github.com/yanglr/WindowsDevTools/raw/master/awosomeTerminal/icons/wt_32.ico" -OutFile "$Env:terminalDir\wt.ico"  # Going to update my own to just grab icon from the appx package

Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\Background\shell\MenuTerminal' -Name 'MUIVerb' -Type String -Value 'Terminals'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\Background\shell\MenuTerminal' -Name 'Icon' -Type String -Value '$Env:terminalDir\wt.ico'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\Background\shell\MenuTerminal' -Name 'ExtendedSubCommandsKey' -Type String -Value 'Directory\\ContextMenus\\MenuTerminal'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\shell\open' -Name 'MUIVerb' -Type String -Value 'Command Prompt'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\shell\open' -Name 'Icon' -Type String -Value 'cmd.exe'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\shell\open' -Name 'ExtendedSubCommandsKey' -Type String -Value 'Directory\\ContextMenus\\MenuTerminal\\CMD'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\CMD\shell\open' -Name 'MUIVerb' -Type String -Value 'Command Prompt'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\CMD\shell\open' -Name 'Icon' -Type String -Value '$Env:terminalDir\wt.ico'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\CMD\shell\open\command' -Name '@' -Type String -Value 'wt.exe --profile CMD'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\CMD\shell\runas' -Name 'MUIVerb' -Type String -Value 'Elevated Terminal'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\CMD\shell\runas' -Name 'Icon' -Type String -Value '$Env:terminalDir\wt.ico'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\CMD\shell\runas' -Name 'HasLUAShield' -Type String -Value ''
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\CMD\shell\runas\command'-Name '@' -Type String -Value 'wt.exe --profile CMD'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\shell\open' -Name 'MUIVerb' -Type String -Value 'PowerShell'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\shell\open' -Name 'Icon' -Type String -Value 'PowerShell.exe'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\shell\open' -Name 'ExtendedSubCommandsKey' -Type String -Value 'Directory\\ContextMenus\\MenuTerminal\\PS'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\PS\shell\open' -Name 'MUIVerb' -Type String -Value 'PowerShell'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\PS\shell\open' -Name 'Icon' -Type String -Value '$Env:terminalDir\wt.ico'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\PS\shell\open\command' -Name '@' -Type String -Value 'wt.exe --profile PowerShell'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\PS\shell\runas' -Name 'MUIVerb' -Type String -Value 'Elevated PowerShell'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\PS\shell\runas' -Name 'Icon' -Type String -Value '$Env:terminalDir\wt.ico'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\PS\shell\runas' -Name 'HasLUAShield' -Type String -Value ''
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\PS\shell\runas\command'-Name '@' -Type String -Value 'wt.exe --Profile PowerShell'

@yanglr Saya mengikuti langkah Anda, menu tombol kanan muncul, tetapi ketika diklik, explorer.exe mengatakan "Windows tidak dapat mengakses perangkat, jalur, atau file yang ditentukan. Anda mungkin tidak memiliki izin yang sesuai untuk mengakses item." (Windows tidak dapat Akses perangkat, jalur, atau file yang ditentukan. Anda mungkin tidak memiliki izin yang sesuai untuk mengakses item).

Menjalankan "% LOCALAPPDATA% \ Microsoft \ WindowsApps \ wt.exe" dari prompt cmd membuka terminal baru seperti yang diharapkan, dan saya memiliki pengaturan serupa untuk msys, wsl-terminal, semuanya berfungsi dengan baik, hanya terminal windows yang tidak berfungsi.

@ chen-xin Ini adalah sesuatu yang berhasil bagi saya untuk kesalahan akses.
Ikuti langkah-langkah yang sama seperti https://github.com/microsoft/terminal/issues/1060#issuecomment -497539461
Tapi, untuk path wt.exe , daripada menggunakan %LOCALAPPDATA% , gunakan path lengkap yang sebenarnya seperti C:\\Users\\[your_user_acc]\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe .

Selain itu, jangan tambahkan startingDirectory dalam pengaturan.

@saisandeepvaddi Berhasil di jalur penuh , terima kasih!

@miniksa @ zadjii-msft @ DHowett-MSFT @factormystic @ChrisGuzak

Saya memecahkan masalah sekarang, itu bisa ditutup. Terima kasih banyak untuk semua yang terlibat dalam diskusi ini.

Langkah 0:

Uji apakah dua konstanta di bawah berfungsi dengan baik yang akan digunakan dalam mengikuti langkah-langkah lain.

echo %USERPROFILE%

echo %LOCALAPPDATA%

Jika semuanya bekerja dengan baik di sini, maka kedua konstanta ini dapat digunakan secara langsung di langkah-langkah lain di bawah ini.

Atau silakan lakukan penggantian berikut dalam langkah-langkah di bawah ini:

% USERPROFILE% → C:\Users\[userName]
% LOCALAPPDATA% → C:\Users\[userName]\AppData\Local

Di sini [userName] mewakili nama pengguna Anda, misalnya, nama saya adalah Bruce .

Langkah 1:
Jalankan di bawah barang-barang di CMD :

mkdir "%USERPROFILE%\AppData\Local\terminal"

image

Langkah 2:
Salin icon terminal windows ke folder %USERPROFILE%\AppData\Local\terminal , icon tersebut dapat diperoleh di https://github.com/yanglr/WindowsDevTools/tree/master/awosomeTerminal/icons yang nama filenya wt_32.ico .

Langkah 3:
Simpan konten follwing sebagai wt.reg , lalu jalankan sebagai administrator.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Windows terminal here"
"Icon"="%USERPROFILE%\\AppData\\Local\\terminal\\wt_32.ico"

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="%LOCALAPPDATA%\\Microsoft\\WindowsApps\\wt.exe"

Yang perlu diperhatikan , jika exe yang diperoleh setelah kode bangunan sendiri adalah wtd.exe , Anda perlu mengubah wt.exe menjadi wtd.exe dalam registri di atas.

Langkah 4:
Uji
image

image

Saya telah mengikuti instruksi Anda tetapi kesalahan ini terjadi di mana pun saya memulai _ terminal Windows di sini_

@Villivateur apakah Anda mencoba https://github.com/microsoft/terminal/issues/1060#issuecomment -515134618

@miniksa @ zadjii-msft @ DHowett-MSFT @factormystic @ChrisGuzak
Saya memecahkan masalah sekarang, itu bisa ditutup. Terima kasih banyak untuk semua yang terlibat dalam diskusi ini.
Langkah 0:
Uji apakah dua konstanta di bawah berfungsi dengan baik yang akan digunakan dalam mengikuti langkah-langkah lain.

echo %USERPROFILE%

echo %LOCALAPPDATA%

Jika semuanya bekerja dengan baik di sini, maka kedua konstanta ini dapat digunakan secara langsung di langkah-langkah lain di bawah ini.
Atau silakan lakukan penggantian berikut dalam langkah-langkah di bawah ini:
% USERPROFILE% → C:\Users\[userName]
% LOCALAPPDATA% → C:\Users\[userName]\AppData\Local
Di sini [userName] mewakili nama pengguna Anda, misalnya, nama saya adalah Bruce .
Langkah 1:
Jalankan di bawah barang-barang di CMD :

mkdir "%USERPROFILE%\AppData\Local\terminal"

image
Langkah 2:
Salin icon terminal windows ke folder %USERPROFILE%\AppData\Local\terminal , icon tersebut dapat diperoleh di https://github.com/yanglr/WindowsDevTools/tree/master/awosomeTerminal/icons yang nama filenya wt_32.ico .
Langkah 3:
Simpan konten follwing sebagai wt.reg , lalu jalankan sebagai administrator.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Windows terminal here"
"Icon"="%USERPROFILE%\\AppData\\Local\\terminal\\wt_32.ico"

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="%LOCALAPPDATA%\\Microsoft\\WindowsApps\\wt.exe"

Yang perlu diperhatikan , jika exe yang diperoleh setelah kode bangunan sendiri adalah wtd.exe , Anda perlu mengubah wt.exe menjadi wtd.exe dalam registri di atas.
Langkah 4:
Uji
image

image

Saya telah mengikuti instruksi Anda tetapi kesalahan ini terjadi di mana pun saya memulai _ terminal Windows di sini_

Seperti @saisandeepvaddi metioned,
Untuk path wt.exe , daripada menggunakan %LOCALAPPDATA% , gunakan path lengkap yang sebenarnya seperti C:\\Users\\[your_user_acc]\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe .

Juga, jangan tambahkan startingDirectory di pengaturan.

Ini bekerja dengan baik di PC saya. Kamu bisa mencobanya.

Mencoba menambahkan wt.exe ke registri, seperti yang dijelaskan sebelumnya, tetapi saya mengalami kesalahan berikut:
image

Terminal dimulai dari baris perintah (Win + R | "wt") secara normal.

Saya pikir kustomisasi Terminal baru adalah keunggulannya. Bagaimana jika ini ada di pengaturan? Katakan, "ExplorerIntegration": true . Kemudian skrip batch dapat menambahkannya seperti di proyek FluentTerminal .

Hei, saya baru saja menghabiskan sedikit meretas untuk dapat membuka Terminal Windows di folder klik kanan tertentu, dan berpikir itu mungkin menarik / berguna bagi seseorang. Ini juga tampaknya berfungsi ketika Anda beralih ke subsistem linux, tetapi tidak CMD. Anda juga bisa tidak menggunakan profil powershell dan menggunakan $ env dengan nama yang sedikit lebih bagus untuk mendapatkan variabel untuk digunakan di ketiganya.

Dengan asumsi Anda telah mengikuti panduan di atas, Anda memerlukan dua file tambahan:

C: \ Users \ [Nama Pengguna Anda] AppData \ Local \ terminal \ launchwt.bat

set wt_powershell_dir=%cd%
start %LOCALAPPDATA%\\Microsoft\\WindowsApps\\wt.exe
exit

C: \ Users \ [Nama Pengguna Anda] \ Documents \ WindowsPowerShell \ Microsoft.PowerShell_profile.ps1

if (Test-Path $env:wt_powershell_dir) {
   cd $env:wt_powershell_dir
   Remove-Item Env:\wt_powershell_dir
}

Anda juga harus membuka kunci registri yang telah Anda instal dan memperbaruinya untuk diarahkan ke file batch:

Computer\HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command

C:\Users\[Your Username]\AppData\Local\terminal\launchwt.bat

Sejauh ini menyenangkan bermain-main dengan terminal, terima kasih banyak 😄.

@minhtuanta Coba hapus startingDirectory di pengaturan. 😊

Menghapus startingDirectory berfungsi untuk saya. Pengaturan yang licik 😛

Sebagai alternatif dari menu klik kanan (sejauh ini pekerjaan luar biasa): jika Anda menyorot bilah alamat direktori Anda saat ini dengan menekan ctrl+l atau mengkliknya lalu mengetik wt.exe , terminal windows akan terbuka shell default Anda di direktori itu.

@kaeside ingin menambahkan- buka shell default di direktori saat ini "di tab baru, jika Terminal sudah berjalan."

Anda bisa mendapatkan ikon asli dari repo di github

@kaeside Tidak yakin versi apa yang Anda gunakan tetapi saya selalu membuka Command Prompt dengan cara ini (Alt + D, masukkan cmd ) dan itu terbuka di direktori kerja saat ini tetapi dalam kasus Terminal Windows, itu selalu terbuka di Direktori pengguna.
Setidaknya untuk Version: 0.3.2171.0

Ya, ini karena startingDirectory , yang disebutkan di sejumlah komentar lain di utas ini. Perbaikannya adalah # 607, yang juga disebutkan.

Mencoba menambahkan wt.exe ke registri, seperti yang dijelaskan sebelumnya, tetapi saya mengalami kesalahan berikut:
image

Terminal dimulai dari baris perintah (Win + R | "wt") secara normal.

Dalam kasus saya, wt.exe terletak di C:\Users\[your_user_name]\AppData\Local\Microsoft\WindowsApps\ .
Dan Anda dapat memeriksa setiap item dalam variabel lingkungan Anda% PATH%.

Saya baru saja memperbarui terminal windows ke Versi: 0.5.2661.0.
Tiba-tiba menu konteks klik kanan "buka terminal Windows di sini" selalu dimulai pada C:\Users\[username] , bahkan jika profiles.json tidak berisi "startingDirectory".

Apa yang memperbaikinya bagi saya adalah, menambahkan "startingDirectory": "." ke profiles.json.
Semoga ini membantu seseorang dengan masalah serupa.

File batch yang memecahkan masalah dengan solusi @yanglr . Secara khusus, alasan mengapa variabel lingkungan tidak berfungsi adalah karena string yang memuatnya perlu ditambahkan sebagai REG_MULTI_SZ, bukan REG_SZ default.

<strong i="7">@echo</strong> off

reg.exe add "HKEY_CLASSES_ROOT\Directory\Background\shell\wt" /f /ve /d "Windows Terminal here"
reg.exe add "HKEY_CLASSES_ROOT\Directory\Background\shell\wt" /f /v "Icon" /t REG_EXPAND_SZ /d "\"%%USERPROFILE%%\Downloads\terminal.ico\""

reg.exe add "HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command" /f /ve /t REG_EXPAND_SZ /d "\"%%LOCALAPPDATA%%\Microsoft\WindowsApps\wt.exe\""

pause

Dump di atas ke dalam file .bat, sesuaikan lokasi ikon sesuai selera, simpan dan jalankan sebagai Administrator , selamat menikmati. Dan jangan lupa komentar @rendrap tentang mengubah profil startingDirectory menjadi . agar ini berfungsi seperti yang diharapkan.

@IanKemp baik sekarang variabel lingkungan bekerja terima kasih tetapi sejak pembaruan terakhir dari toko aplikasi itu tidak terbuka di direktori apakah Anda punya solusi untuk itu?

@poqdavid Saya sarankan Anda membaca komentar @rendrap , seperti yang saya sarankan.

Jadi, saya mendapatkan klik kanan "Buka Terminal Windows di sini" yang berfungsi, tetapi saya tidak tahu cara menjalankannya sebagai Administrator. Saya sudah mencoba menggunakan runas di Registry serta kata kerja runas, tetapi tidak berhasil.

Namun, jika saya menekan tombol Windows -> ketik Terminal -> klik "Jalankan sebagai administrator" Saya menjalankan Terminal Windows sebagai admin, jadi sangat mungkin.

Apa saus rahasia untuk mengatur lingkungan WT sehingga dimulai sebagai administrator?

@IanKemp Jika Anda terutama bekerja dengan PowerShell, Anda dapat mencoba sudo . Skrip ini memungkinkan Anda menjalankan perintah sebagai admin di jendela PowerShell yang tidak ditinggikan.

Ini file saya yang saya gunakan tidak membuka jalur tetapi setidaknya terlihat bagus:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Windows terminal here"
"Icon"="%ProgramFiles%\\WindowsApps\\Microsoft.WindowsTerminal_0.5.2681.0_x64__8wekyb3d8bbwe\\WindowsTerminal.exe"
"Extended"=""

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="C:\\Users\\andre\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe"


[HKEY_CLASSES_ROOT\Directory\shell\wt]
@="Windows terminal here"
"Icon"="%ProgramFiles%\\WindowsApps\\Microsoft.WindowsTerminal_0.5.2681.0_x64__8wekyb3d8bbwe\\WindowsTerminal.exe"
"Extended"=""

[HKEY_CLASSES_ROOT\Directory\shell\wt\command]
@="C:\\Users\\andre\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe"

EDIT: Seperti yang disebutkan di atas, setel Direktori awal Anda ke "." di profiles.json Anda

"startingDiretory" : ".",

Saya menggunakan Terminal Windows dengan Ubuntu WSL
Apakah ada cara untuk membuatnya sehingga jika saya menggunakan "terminal Windows di sini", itu terbuka di direktori tempat saya berada, tetapi jika saya hanya memulai Terminal Windows secara normal, itu membawa saya ke Ubuntu ~?

Membuatnya menjatuhkan saya ke rumah Ubuntu secara default relatif mudah dilakukan seperti ini:
"commandline" : "wsl.exe ~ -d Ubuntu-18.04"
tetapi kemudian menambahkan "startingDirectory": "." secara alami tidak membawa hasil yang diharapkan untuk pintasan menu konteks. Tanpa ~ di commandline itu memunculkan shell di /mnt/c/Windows/System32

Berikut ini cuplikan file pengaturan saya:

    "defaultProfile": "{2c4de342-38b7-51cf-b940-2309a097f518}",
    "profiles":
    [
        {
            "guid": "{2c4de342-38b7-51cf-b940-2309a097f518}",
            "name": "Ubuntu",
            // ... SNIPP
            //"startingDirectory" : "\\\\wsl$\\Ubuntu\\home\\andre",
            "startingDirectory" : ".",
            // ... SNIPP
        },
        // ... SNIPP
    ]

Yang ini membuka direktori Anda saat menggunakan Windows terminal here . Tetapi akan membuka /mnt/c/Windows/System32 ketika terminal dibuka secara normal. Diri saya belum menyelesaikan masalah ini.
Seperti yang Anda lihat, saya juga mendefinisikan direktori home sebelumnya sebelum mulai menggunakan "."

@ambelly Tidak saat ini. Skenario itu mungkin membutuhkan # 878 untuk diperbaiki agar dapat mendukung.

Jadi, saya mendapatkan klik kanan "Buka Terminal Windows di sini" yang berfungsi, tetapi saya tidak tahu cara menjalankannya sebagai Administrator. Saya sudah mencoba menggunakan runas di Registry serta kata kerja runas, tetapi tidak berhasil.

Namun, jika saya menekan tombol Windows -> ketik Terminal -> klik "Jalankan sebagai administrator" Saya menjalankan Terminal Windows sebagai admin, jadi sangat mungkin.

Apa saus rahasia untuk mengatur lingkungan WT sehingga dimulai sebagai administrator?

@IanKemp Anda dapat mencoba cara ini dengan mengubah nilai command bawah kunci registri runas :
cmd.exe /s /c pushd "%V" & start wt.exe

Meskipun agak berputar-putar, setidaknya ini berhasil untuk saya.

apakah ada cara untuk, jika sudah ada instance wt.exe yang sedang berjalan, untuk menambahkan tab di sana?
Dan adakah cara untuk menentukan profil mana yang dimiliki tab baru?

Mencoba menambahkan wt.exe ke registri, seperti yang dijelaskan sebelumnya, tetapi saya mengalami kesalahan berikut:
image

Terminal dimulai dari baris perintah (Win + R | "wt") secara normal.

Masalah yang sama di pihak saya, tidak tahu cara memperbaikinya. File registri sebagai berikut:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Open Windows terminal here"
"Icon"="%USERPROFILE%\\AppData\\Local\\terminal\\wt.ico"

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="%LOCALAPPDATA%\\Microsoft\\WindowsApps\\wt.exe"


[HKEY_CLASSES_ROOT\Directory\shell\wt]
@="Open Windows terminal here"
"Icon"="%USERPROFILE%\\AppData\\Local\\terminal\\wt.ico"

[HKEY_CLASSES_ROOT\Directory\shell\wt\command]
@="%LOCALAPPDATA%\\Microsoft\\WindowsApps\\wt.exe"

Anda harus memiliki jalur absolut dan tidak menggunakan variabel
lihat: https://github.com/microsoft/terminal/issues/1060#issuecomment -536322970

Saya merasa inilah alasan saya tidak lagi menggunakan Terminal, karena cara saya membuka command prompt adalah 80% dari File Explorer. Sisanya dari Win + R + cmd + Enter, dan saya baru belajar tentang alias wt , jadi itu akan membantu.

Ketika ini selesai, akan ada peluang besar untuk mengeksposnya di Pengaturan juga di mana mereka memiliki sakelar PowerShell / CMD:

image

Akan lebih baik jika memiliki opsi untuk memilih shell yang diinginkan sebagai drop-down dan memiliki Terminal sebagai opsi jika sudah diinstal.

@ michael-hawker yang sebenarnya Anda cari di sini adalah # 492 😁

Saya mengotomatiskan seluruh proses menjadi satu file bat yang perlu Anda jalankan sebagai admin.
Tambahkan Terminal Windows ke menu konteks.zip
Anda masih perlu mengubah direktori awal di profiles.json menjadi "startingDirectory" : ".",

@ Restia666Ashdoll yang tampaknya tidak mendapatkan .ico dengan benar

Bekerja di sini
image

Coba ini. Buka lokasi file terminal.ico. Sekarang, masuk ke bilah alamat dan ketik "cmd".
Sekarang, di Command Prompt masukkan perintah berikut
xcopy "terminal.ico" "%LOCALAPPDATA%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\" /b /v /y /q

Tidak berhasil

Cukup buka "% LOCALAPPDATA% \ Packages \ Microsoft.WindowsTerminal_8wekyb3d8bbwe \ LocalState" dan salin file ico secara manual lalu

Ya saya telah melakukannya tetapi masalahnya adalah kunci registri tidak mengambil ico

Saya mengotomatiskan seluruh proses menjadi satu file bat yang perlu Anda jalankan sebagai admin.
Tambahkan Terminal Windows ke menu konteks.zip
Anda masih perlu mengubah direktori awal di profiles.json menjadi "startingDiretory" : ".",

Peringatan: Ada kesalahan mengetik, sebaiknya gunakan "startingDirectory" : "." sebagai gantinya.

bagaimana dengan kunci HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\wt ? Itu tidak membutuhkan izin admin

bagaimana dengan kunci HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\wt ? Itu tidak membutuhkan izin admin

Ini hanya untuk pengguna saat ini.

@ Restia666Ashdoll dan @musm , logout dan login lagi setelah menyalin file ico ke folder LocalAppData. Ikon akan muncul kemudian.

image

@edrohler Mengapa Anda mengutip saya? Saya tidak punya masalah ini.

@Horacehxw itu hanya jika itu entri terakhir.

@ Restia666Ashdoll Saya mengutip Anda berpikir Anda mungkin ingin berbagi informasi dengan skrip batch Anda jika ada orang lain yang bertanya. :)

logout dan login lagi

@edrohler Gunakan pengelola tugas untuk memulai ulang explorer.exe sudah cukup.
Saat Anda memiliki setidaknya 1 folder yang terbuka, pengelola tugas akan menampilkan Mulai Ulang untuk itu dalam posisi normal Tugas Akhir (di halaman pertama, bukan detail proses)

@Horacehxw itu hanya jika itu entri terakhir.

Masalahnya bukan koma di bagian akhir, tetapi ejaan "Direktori". Yang sebelumnya tidak memiliki "c".

Saya mengotomatiskan seluruh proses menjadi satu file bat yang perlu Anda jalankan sebagai admin.
Tambahkan Terminal Windows ke menu konteks.zip
Anda masih perlu mengubah direktori awal di profiles.json menjadi "startingDirectory" : ".",

Saya mencoba ini, Tapi dua masalah: Sekarang ada startingDirectory di profile.json:


// To view the default settings, hold "alt" while clicking on the "Settings" button.
// For documentation on these settings, see: https://aka.ms/terminal-documentation

{
    "$schema": "https://aka.ms/terminal-profiles-schema",

    "defaultProfile": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",

    "profiles":
    [
        {
            // Make changes here to the powershell.exe profile
            "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
            "name": "Windows PowerShell",
            "commandline": "powershell.exe",
            "hidden": false
        },
        {
            // Make changes here to the cmd.exe profile
            "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
            "name": "cmd",
            "commandline": "cmd.exe",
            "hidden": false
        },
        {
            "guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}",
            "hidden": false,
            "name": "Azure Cloud Shell",
            "source": "Windows.Terminal.Azure"
        },
        {
            "guid": "{c6eaf9f4-32a7-5fdc-b5cf-066e8a4b1e40}",
            "hidden": false,
            "name": "Ubuntu-18.04",
            "source": "Windows.Terminal.Wsl"
        }
    ],

    // Add custom color schemes to this array
    "schemes": [],

    // Add any keybinding overrides to this array.
    // To unbind a default keybinding, set the command to "unbound"
    "keybindings": []
}

Masalah lain adalah bahwa terminal tidak benar-benar menuju ke jalur 'di sini' yang benar, ia hanya memulai di jalur pengguna saya

Saya mengotomatiskan seluruh proses menjadi satu file bat yang perlu Anda jalankan sebagai admin.
Tambahkan Terminal Windows ke menu konteks.zip
Anda masih perlu mengubah direktori awal di profiles.json menjadi "startingDiretory" : ".",

Peringatan: Ada kesalahan mengetik, sebaiknya gunakan "startingDirectory" : "." sebagai gantinya.

Ini berfungsi dengan baik jika Anda benar dan membuka di sini ...
Satu masalah yang saya perhatikan adalah jika Anda membuka terminal secara normal ... direktori default adalah system32 ... adakah cara untuk mengganti dan membuatnya menggunakan folder pengguna ketika dibuka secara normal secara kebetulan?

Saya mengotomatiskan seluruh proses menjadi satu file bat yang perlu Anda jalankan sebagai admin.
Tambahkan Terminal Windows ke menu konteks.zip
Anda masih perlu mengubah direktori awal di profiles.json menjadi "startingDirectory" : ".",

Saya mencoba ini, Tapi dua masalah: Sekarang ada startingDirectory di profile.json:


// To view the default settings, hold "alt" while clicking on the "Settings" button.
// For documentation on these settings, see: https://aka.ms/terminal-documentation

{
    "$schema": "https://aka.ms/terminal-profiles-schema",

    "defaultProfile": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",

    "profiles":
    [
        {
            // Make changes here to the powershell.exe profile
            "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
            "name": "Windows PowerShell",
            "commandline": "powershell.exe",
            "hidden": false
        },
        {
            // Make changes here to the cmd.exe profile
            "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
            "name": "cmd",
            "commandline": "cmd.exe",
            "hidden": false
        },
        {
            "guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}",
            "hidden": false,
            "name": "Azure Cloud Shell",
            "source": "Windows.Terminal.Azure"
        },
        {
            "guid": "{c6eaf9f4-32a7-5fdc-b5cf-066e8a4b1e40}",
            "hidden": false,
            "name": "Ubuntu-18.04",
            "source": "Windows.Terminal.Wsl"
        }
    ],

    // Add custom color schemes to this array
    "schemes": [],

    // Add any keybinding overrides to this array.
    // To unbind a default keybinding, set the command to "unbound"
    "keybindings": []
}

Masalah lain adalah bahwa terminal tidak benar-benar menuju ke jalur 'di sini' yang benar, ia hanya memulai di jalur pengguna saya

Ini profil saya jika Anda tertarik

{
    "$schema": "https://aka.ms/terminal-profiles-schema",
    "globals" : 
    {
        "alwaysShowTabs" : true,
        "defaultProfile" : "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
        "disabledProfileSources": [
        "Windows.Terminal.Azure"
    ],
        "initialCols" : 120,
        "initialRows" : 30,
        "keybindings" : 
        [
            {
                "command" : "closePane",
                "keys" : 
                [
                    "ctrl+shift+w"
                ]
            },
            {
                "command" : "copy",
                "keys" : 
                [
                    "ctrl+shift+c"
                ]
            },
            {
                "command" : "duplicateTab",
                "keys" : 
                [
                    "ctrl+shift+d"
                ]
            },
            {
                "command" : "newTab",
                "keys" : 
                [
                    "ctrl+shift+t"
                ]
            },
            {
                "command" : "newTabProfile0",
                "keys" : 
                [
                    "ctrl+shift+1"
                ]
            },
            {
                "command" : "newTabProfile1",
                "keys" : 
                [
                    "ctrl+shift+2"
                ]
            },
            {
                "command" : "newTabProfile2",
                "keys" : 
                [
                    "ctrl+shift+3"
                ]
            },
            {
                "command" : "newTabProfile3",
                "keys" : 
                [
                    "ctrl+shift+4"
                ]
            },
            {
                "command" : "newTabProfile4",
                "keys" : 
                [
                    "ctrl+shift+5"
                ]
            },
            {
                "command" : "newTabProfile5",
                "keys" : 
                [
                    "ctrl+shift+6"
                ]
            },
            {
                "command" : "newTabProfile6",
                "keys" : 
                [
                    "ctrl+shift+7"
                ]
            },
            {
                "command" : "newTabProfile7",
                "keys" : 
                [
                    "ctrl+shift+8"
                ]
            },
            {
                "command" : "newTabProfile8",
                "keys" : 
                [
                    "ctrl+shift+9"
                ]
            },
            {
                "command" : "nextTab",
                "keys" : 
                [
                    "ctrl+tab"
                ]
            },
            {
                "command" : "openSettings",
                "keys" : 
                [
                    "ctrl+,"
                ]
            },
            {
                "command" : "paste",
                "keys" : 
                [
                    "ctrl+shift+v"
                ]
            },
            {
                "command" : "prevTab",
                "keys" : 
                [
                    "ctrl+shift+tab"
                ]
            },
            {
                "command" : "scrollDown",
                "keys" : 
                [
                    "ctrl+shift+down"
                ]
            },
            {
                "command" : "scrollDownPage",
                "keys" : 
                [
                    "ctrl+shift+pgdn"
                ]
            },
            {
                "command" : "scrollUp",
                "keys" : 
                [
                    "ctrl+shift+up"
                ]
            },
            {
                "command" : "scrollUpPage",
                "keys" : 
                [
                    "ctrl+shift+pgup"
                ]
            },
            {
                "command" : "switchToTab0",
                "keys" : 
                [
                    "ctrl+alt+1"
                ]
            },
            {
                "command" : "switchToTab1",
                "keys" : 
                [
                    "ctrl+alt+2"
                ]
            },
            {
                "command" : "switchToTab2",
                "keys" : 
                [
                    "ctrl+alt+3"
                ]
            },
            {
                "command" : "switchToTab3",
                "keys" : 
                [
                    "ctrl+alt+4"
                ]
            },
            {
                "command" : "switchToTab4",
                "keys" : 
                [
                    "ctrl+alt+5"
                ]
            },
            {
                "command" : "switchToTab5",
                "keys" : 
                [
                    "ctrl+alt+6"
                ]
            },
            {
                "command" : "switchToTab6",
                "keys" : 
                [
                    "ctrl+alt+7"
                ]
            },
            {
                "command" : "switchToTab7",
                "keys" : 
                [
                    "ctrl+alt+8"
                ]
            },
            {
                "command" : "switchToTab8",
                "keys" : 
                [
                    "ctrl+alt+9"
                ]
            }
        ],
        "requestedTheme" : "system",
        "showTabsInTitlebar" : true,
        "showTerminalTitleInTitlebar" : true,
        "wordDelimiters" : " ./\\()\"'-:,.;<>~!@#$%^&*|+=[]{}~?\u2502"
    },
    "profiles" : 
    [
        {
            "acrylicOpacity" : 0.75,
            "background" : "#012456",
            "closeOnExit" : true,
            "colorScheme" : "One Half Dark",
            "commandline" : "powershell.exe",
            "cursorColor" : "#FFFFFF",
            "cursorShape" : "bar",
            "fontFace" : "Consolas",
            "fontSize" : 10,
            "guid" : "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
            "historySize" : 9001,
            "icon" : "ms-appx:///ProfileIcons/{61c54bbd-c2c6-5271-96e7-009a87ff44bf}.png",
            "name" : "Windows PowerShell",
            "padding" : "0, 0, 0, 0",
            "snapOnInput" : true,
            "startingDirectory" : ".",
            "useAcrylic" : true
        },
        {
            "acrylicOpacity" : 0.75,
            "closeOnExit" : true,
            "colorScheme" : "One Half Dark",
            "commandline" : "cmd.exe",
            "cursorColor" : "#FFFFFF",
            "cursorShape" : "bar",
            "fontFace" : "Consolas",
            "fontSize" : 10,
            "guid" : "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
            "historySize" : 9001,
            "icon" : "ms-appx:///ProfileIcons/{0caa0dad-35be-5f56-a8ff-afceeeaa6101}.png",
            "name" : "Command Prompt",
            "padding" : "0, 0, 0, 0",
            "snapOnInput" : true,
            "startingDirectory" : ".",
            "useAcrylic" : true
        },
        {
            "acrylicOpacity" : 0.75,
            "closeOnExit" : true,
            "colorScheme" : "flat-ui-v1",
            "commandline" : "cmd.exe /c set MSYS=winsymlinks:nativestrict&& set MSYS2_PATH_TYPE=inherit&& msys2 -i -l",
            "cursorColor" : "#FFFFFF",
            "cursorShape" : "bar",
            "fontFace" : "Consolas",
            "fontSize" : 10,
            "historySize" : 9001,
            "icon" : "%SCOOP%\\apps\\msys2\\current\\msys2.ico",
            "name" : "MSYS2",
            "padding" : "0, 0, 0, 0",
            "snapOnInput" : true,
            "startingDirectory" : ".",
            "useAcrylic" : true
        },
        {
            "acrylicOpacity" : 0.75,
            "closeOnExit" : true,
            "colorScheme" : "flat-ui-v1",
            "commandline" : "cmd.exe /c set MSYS=winsymlinks:nativestrict&& set MSYS2_PATH_TYPE=inherit&& mingw64 -i -l",
            "cursorColor" : "#FFFFFF",
            "cursorShape" : "bar",
            "fontFace" : "Consolas",
            "fontSize" : 10,
            "historySize" : 9001,
            "icon" : "%SCOOP%\\apps\\msys2\\current\\mingw64.ico",
            "name" : "MinGW64",
            "padding" : "0, 0, 0, 0",
            "snapOnInput" : true,
            "startingDirectory" : ".",
            "useAcrylic" : true
        },
        {         
            "guid": "{a5a97cb8-8961-5535-816d-772efe0c6a3f}",
            "acrylicOpacity" : 0.75,
            "background" : "#012456",
            "closeOnExit" : true,
            "colorScheme" : "flat-ui-v1",
            "cursorColor" : "#FFFFFF",
            "cursorShape" : "bar",
            "fontFace" : "Consolas",
            "fontSize" : 10,
            "hidden": false,
            "name": "Arch",
            "icon" : "%SCOOP%\\apps\\archwsl\\current\\arch.ico",
            "source": "Windows.Terminal.Wsl",
            "padding" : "0, 0, 0, 0",
            "snapOnInput" : true,
            "startingDirectory" : ".",
            "useAcrylic" : true
        },
        {        
            "acrylicOpacity" : 0.75,
            "closeOnExit" : true,
            "colorScheme" : "flat-ui-v1",
            "commandline" : "\"%SCOOP%\\apps\\git-with-openssh\\current\\bin\\bash.exe\" -i -l",
            "cursorColor" : "#FFFFFF",
            "cursorShape" : "bar",
            "fontFace" : "Consolas",
            "fontSize" : 10,
            "historySize" : 9001,
            "icon" : "%SCOOP%\\apps\\git-with-openssh\\current\\mingw64\\share\\git\\git-for-windows.ico",
            "name" : "Git Bash",
            "padding" : "0, 0, 0, 0",
            "snapOnInput" : true,
            "startingDirectory" : ".",
            "useAcrylic" : true
        }
    ],
        {
            "acrylicOpacity" : 0.75,
            "background" : "#012456",
            "closeOnExit" : true,
            "colorScheme" : "One Half Dark",
            "commandline" : "powershell.exe",
            "cursorColor" : "#FFFFFF",
            "cursorShape" : "bar",
            "fontFace" : "Consolas",
            "fontSize" : 10,
            "guid" : "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
            "historySize" : 9001,
            "icon" : "ms-appx:///ProfileIcons/{61c54bbd-c2c6-5271-96e7-009a87ff44bf}.png",
            "backgroundImage" : "ms-appdata:///local/1537295612521.png",
            "backgroundImageOpacity" : 0.75,
            "backgroundImageStrechMode" : "fill",
            "name" : "Windows PowerShell",
            "padding" : "0, 0, 0, 0",
            "snapOnInput" : true,
            "startingDirectory" : ".",
            "useAcrylic" : true
        },
        {
            "acrylicOpacity" : 0.75,
            "closeOnExit" : true,
            "colorScheme" : "One Half Dark",
            "commandline" : "cmd.exe",
            "cursorColor" : "#FFFFFF",
            "cursorShape" : "bar",
            "fontFace" : "Consolas",
            "fontSize" : 10,
            "guid" : "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
            "historySize" : 9001,
            "icon" : "ms-appx:///ProfileIcons/{0caa0dad-35be-5f56-a8ff-afceeeaa6101}.png",
            "backgroundImage" : "ms-appdata:///local/1503827082075.png",
            "backgroundImageOpacity" : 0.75,
            "backgroundImageStrechMode" : "fill",
            "name" : "Command Prompt",
            "padding" : "0, 0, 0, 0",
            "snapOnInput" : true,
            "startingDirectory" : ".",
            "useAcrylic" : true
        },
        {
            "acrylicOpacity" : 0.75,
            "closeOnExit" : true,
            "colorScheme" : "flat-ui-v1",
            "commandline" : "cmd.exe /c set MSYS=winsymlinks:nativestrict&& set MSYS2_PATH_TYPE=inherit&& msys2 -i -l",
            "cursorColor" : "#FFFFFF",
            "cursorShape" : "bar",
            "fontFace" : "Consolas",
            "fontSize" : 10,
            "historySize" : 9001,
            "icon" : "%SCOOP%\\apps\\msys2\\current\\msys2.ico",
            "backgroundImage" : "ms-appdata:///local/1504637576364.png",
            "backgroundImageOpacity" : 0.75,
            "backgroundImageStrechMode" : "fill",
            "name" : "MSYS2",
            "padding" : "0, 0, 0, 0",
            "snapOnInput" : true,
            "startingDirectory" : ".",
            "useAcrylic" : true
        },
        {
            "acrylicOpacity" : 0.75,
            "closeOnExit" : true,
            "colorScheme" : "flat-ui-v1",
            "commandline" : "cmd.exe /c set MSYS=winsymlinks:nativestrict&& set MSYS2_PATH_TYPE=inherit&& mingw64 -i -l",
            "cursorColor" : "#FFFFFF",
            "cursorShape" : "bar",
            "fontFace" : "Consolas",
            "fontSize" : 10,
            "historySize" : 9001,
            "icon" : "%SCOOP%\\apps\\msys2\\current\\mingw64.ico",
            "backgroundImage" : "ms-appdata:///local/704387.png",
            "backgroundImageOpacity" : 0.75,
            "backgroundImageStrechMode" : "fill",
            "name" : "MinGW64",
            "padding" : "0, 0, 0, 0",
            "snapOnInput" : true,
            "startingDirectory" : ".",
            "useAcrylic" : true
        },
        {         
            "guid": "{a5a97cb8-8961-5535-816d-772efe0c6a3f}",
            "acrylicOpacity" : 0.75,
            "background" : "#012456",
            "closeOnExit" : true,
            "colorScheme" : "flat-ui-v1",
            "cursorColor" : "#FFFFFF",
            "cursorShape" : "bar",
            "fontFace" : "Consolas",
            "fontSize" : 10,
            "hidden": false,
            "name": "Arch",
            "icon" : "%SCOOP%\\apps\\archwsl\\current\\arch.ico",
            "backgroundImage" : "ms-appdata:///local/1507634976184.jpg",
            "backgroundImageOpacity" : 0.75,
            "backgroundImageStrechMode" : "fill",
            "source": "Windows.Terminal.Wsl",
            "padding" : "0, 0, 0, 0",
            "snapOnInput" : true,
            "startingDirectory" : ".",
            "useAcrylic" : true
        },
        {        
            "acrylicOpacity" : 0.75,
            "closeOnExit" : true,
            "colorScheme" : "flat-ui-v1",
            "commandline" : "\"%SCOOP%\\apps\\git-with-openssh\\current\\bin\\bash.exe\" -i -l",
            "cursorColor" : "#FFFFFF",
            "cursorShape" : "bar",
            "fontFace" : "Consolas",
            "fontSize" : 10,
            "historySize" : 9001,
            "icon" : "%SCOOP%\\apps\\git-with-openssh\\current\\mingw64\\share\\git\\git-for-windows.ico",
            "backgroundImage" : "ms-appdata:///local/1496315646560.png",
            "backgroundImageOpacity" : 0.75,
            "backgroundImageStrechMode" : "fill",
            "name" : "Git Bash",
            "padding" : "0, 0, 0, 0",
            "snapOnInput" : true,
            "startingDirectory" : ".",
            "useAcrylic" : true
        }
    ],
    "schemes" : 
    [
        {
            "background":"#000000",
            "black":"#000000",
            "blue":"#2980b9",
            "brightBlack":"#7f8c8d",
            "brightBlue":"#3498db",
            "brightCyan":"#1abc9c",
            "brightGreen":"#2ecc71",
            "brightPurple":"#9b59b6",
            "brightRed":"#e74c3c",
            "brightWhite":"#ecf0f1",
            "brightYellow":"#f1c40f",
            "cyan":"#16a085",
            "foreground":"#ecf0f1",
            "green":"#27ae60",
            "name":"flat-ui-v1",
            "purple":"#8e44ad",
            "red":"#c0392b",
            "white":"#ecf0f1",
            "yellow":"#f39c12"
        },
        {
            "background" : "#0C0C0C",
            "black" : "#0C0C0C",
            "blue" : "#0037DA",
            "brightBlack" : "#767676",
            "brightBlue" : "#3B78FF",
            "brightCyan" : "#61D6D6",
            "brightGreen" : "#16C60C",
            "brightPurple" : "#B4009E",
            "brightRed" : "#E74856",
            "brightWhite" : "#F2F2F2",
            "brightYellow" : "#F9F1A5",
            "cyan" : "#3A96DD",
            "foreground" : "#CCCCCC",
            "green" : "#13A10E",
            "name" : "Campbell",
            "purple" : "#881798",
            "red" : "#C50F1F",
            "white" : "#CCCCCC",
            "yellow" : "#C19C00"
        },
        {
            "background" : "#000000",
            "black" : "#000000",
            "blue" : "#000080",
            "brightBlack" : "#808080",
            "brightBlue" : "#0000FF",
            "brightCyan" : "#00FFFF",
            "brightGreen" : "#00FF00",
            "brightPurple" : "#FF00FF",
            "brightRed" : "#FF0000",
            "brightWhite" : "#FFFFFF",
            "brightYellow" : "#FFFF00",
            "cyan" : "#008080",
            "foreground" : "#C0C0C0",
            "green" : "#008000",
            "name" : "Vintage",
            "purple" : "#800080",
            "red" : "#800000",
            "white" : "#C0C0C0",
            "yellow" : "#808000"
        },
        {
            "background" : "#282C34",
            "black" : "#282C34",
            "blue" : "#61AFEF",
            "Grey" : "#FFFFFF",
            "darkGrey" : "#FFFFFF",
            "brightBlack" : "#5A6374",
            "brightBlue" : "#61AFEF",
            "brightCyan" : "#56B6C2",
            "brightGreen" : "#98C379",
            "brightPurple" : "#C678DD",
            "brightRed" : "#E06C75",
            "brightWhite" : "#DCDFE4",
            "brightYellow" : "#E5C07B",
            "cyan" : "#56B6C2",
            "foreground" : "#DCDFE4",
            "green" : "#98C379",
            "name" : "One Half Dark",
            "purple" : "#C678DD",
            "red" : "#E06C75",
            "white" : "#DCDFE4",
            "yellow" : "#E5C07B"
        },
        {
            "background" : "#FAFAFA",
            "black" : "#383A42",
            "blue" : "#0184BC",
            "brightBlack" : "#4F525D",
            "brightBlue" : "#61AFEF",
            "brightCyan" : "#56B5C1",
            "brightGreen" : "#98C379",
            "brightPurple" : "#C577DD",
            "brightRed" : "#DF6C75",
            "brightWhite" : "#FFFFFF",
            "brightYellow" : "#E4C07A",
            "cyan" : "#0997B3",
            "foreground" : "#383A42",
            "green" : "#50A14F",
            "name" : "One Half Light",
            "purple" : "#A626A4",
            "red" : "#E45649",
            "white" : "#FAFAFA",
            "yellow" : "#C18301"
        },
        {
            "background" : "#002B36",
            "black" : "#073642",
            "blue" : "#268BD2",
            "brightBlack" : "#002B36",
            "brightBlue" : "#839496",
            "brightCyan" : "#93A1A1",
            "brightGreen" : "#586E75",
            "brightPurple" : "#6C71C4",
            "brightRed" : "#CB4B16",
            "brightWhite" : "#FDF6E3",
            "brightYellow" : "#657B83",
            "cyan" : "#2AA198",
            "foreground" : "#839496",
            "green" : "#859900",
            "name" : "Solarized Dark",
            "purple" : "#D33682",
            "red" : "#DC322F",
            "white" : "#EEE8D5",
            "yellow" : "#B58900"
        },
        {
            "background" : "#FDF6E3",
            "black" : "#073642",
            "blue" : "#268BD2",
            "brightBlack" : "#002B36",
            "brightBlue" : "#839496",
            "brightCyan" : "#93A1A1",
            "brightGreen" : "#586E75",
            "brightPurple" : "#6C71C4",
            "brightRed" : "#CB4B16",
            "brightWhite" : "#FDF6E3",
            "brightYellow" : "#657B83",
            "cyan" : "#2AA198",
            "foreground" : "#657B83",
            "green" : "#859900",
            "name" : "Solarized Light",
            "purple" : "#D33682",
            "red" : "#DC322F",
            "white" : "#EEE8D5",
            "yellow" : "#B58900"
        }
    ]
}

@ Restia666Ashdoll Terima kasih! itu berhasil tetapi setiap kali itu menunjukkan munculan:

Capture

@foremtehan Karena, Anda tidak menggunakan msys2, mingw64, arch dan git bash, Anda tidak membutuhkannya. Sekarang, coba ini di profil untuk Ubuntu.

        {         
            "guid": "{c6eaf9f4-32a7-5fdc-b5cf-066e8a4b1e40}",
            "acrylicOpacity" : 0.75,
            "background" : "#012456",
            "closeOnExit" : true,
            "colorScheme" : "flat-ui-v1",
            "cursorColor" : "#FFFFFF",
            "cursorShape" : "bar",
            "fontFace" : "Consolas",
            "fontSize" : 10,
            "hidden": false,
            "name": "Ubuntu",
            "source": "Windows.Terminal.Wsl",
            "padding" : "0, 0, 0, 0",
            "snapOnInput" : true,
            "startingDirectory" : ".",
            "useAcrylic" : true
        }

Pastikan tidak ada koma di bagian profil akhir

Saya mengotomatiskan seluruh proses menjadi satu file bat yang perlu Anda jalankan sebagai admin.
Tambahkan Terminal Windows ke menu konteks.zip
Anda masih perlu mengubah direktori awal di profiles.json menjadi "startingDiretory" : ".",

Peringatan: Ada kesalahan mengetik, sebaiknya gunakan "startingDirectory" : "." sebagai gantinya.

Ini berfungsi dengan baik jika Anda benar dan membuka di sini ...
Satu masalah yang saya perhatikan adalah jika Anda membuka terminal secara normal ... direktori default adalah system32 ... adakah cara untuk mengganti dan membuatnya menggunakan folder pengguna ketika dibuka secara normal secara kebetulan?

Hei! Saya juga mengalami masalah ini. Perbaikan cepat dan kotor adalah dengan menambahkan perintah cd ke file .bashrc Anda di dalam terminal WSL.
echo 'cd ~' >> ~ / .bashrc

Itu mengalahkan seluruh tujuan utas ini, karena utas ini akan selalu ada di direktori '~' di mana pun Anda membuka terminal. Cukup ketik 'cd ~' setelah membuka terminal di wsl / msys2 / mingw64 / git bash.

Saya mengotomatiskan seluruh proses menjadi satu file bat yang perlu Anda jalankan sebagai admin.
Tambahkan Terminal Windows ke menu konteks.zip
Anda masih perlu mengubah direktori awal di profiles.json menjadi "startingDiretory" : ".",

Peringatan: Ada kesalahan mengetik, sebaiknya gunakan "startingDirectory" : "." sebagai gantinya.

Ini berfungsi dengan baik jika Anda benar dan membuka di sini ...
Satu masalah yang saya perhatikan adalah jika Anda membuka terminal secara normal ... direktori default adalah system32 ... adakah cara untuk mengganti dan membuatnya menggunakan folder pengguna ketika dibuka secara normal secara kebetulan?

Hei! Saya juga mengalami masalah ini. Perbaikan cepat dan kotor adalah dengan menambahkan perintah cd ke file .bashrc Anda di dalam terminal WSL.
echo 'cd ~' >> ~ / .bashrc

Itu mengalahkan seluruh tujuan utas ini, karena utas ini akan selalu ada di direktori '~' di mana pun Anda membuka terminal. Cukup ketik 'cd ~' setelah membuka terminal di wsl / msys2 / mingw64 / git bash.

Ini juga akan menyetel direktori startup ke "~" saat Anda mengklik "Buka Terminal Windows di Sini". Anda cukup menambahkan kondisi if.
if [ "$PWD" = "/mnt/c/Windows/System32" ]; then cd ~ fi

@ Restia666Ashdoll dan @musm , logout dan login lagi setelah menyalin file ico ke folder LocalAppData. Ikon akan muncul kemudian.

image

Bagaimana Anda menambahkan opsi "Buka dengan Kode"?

@ Restia666Ashdoll dan @musm , logout dan login lagi setelah menyalin file ico ke folder LocalAppData. Ikon akan muncul kemudian.
image

Bagaimana Anda menambahkan opsi "Buka dengan Kode"?

ketika Anda menginstal kode itu menanyakan Anda apakah Anda ingin menambahkan shell terbuka dengan opsi kode

Bagi mereka yang menginstal terminal dari windows store, perintahnya adalah:

explorer.exe shell:appsFolder\Microsoft.WindowsTerminal_8wekyb3d8bbwe!App

Terminal Windows juga menambahkan wt.exe ke jalur, yang membuat cuplikan rawan kesalahan di atas menjadi berlebihan.

Saya memuji pekerjaan semua orang di sini, tetapi saya hanya ingin memberikan solusi yang lebih sederhana yang cukup baik untuk saya dan mungkin untuk banyak dari Anda juga:

PERSIAPAN PENTING: Dalam file pengaturan Terminal Windows Anda, pastikan bahwa profil shell default Anda berisi "startingDirectory": ".", yang berarti "mulai di direktori kerja saat ini". (Jika Anda melewatkan langkah ini, Terminal Windows akan mengabaikan direktori kerja dan akan selalu dimulai di direktori beranda Anda.)

Sekarang untuk instruksinya:

  1. Arahkan ke beberapa folder menyenangkan di Explorer!
  2. Tekan Ctrl-L, ketik wt , dan tekan Enter. Itu dia! Selesai! Terminal Windows terbuka di folder yang Anda lihat.

Teks yang dicetak tebal di atas adalah instruksi sebenarnya. Hehe. Itu dia!

Saya tidak membutuhkan item menu klik kanan. Sangat jarang saya perlu membuka terminal di direktori saat ini, dan saya baik-baik saja hanya dengan Ctrl-L, wt , Enter. Ini sangat cepat dan ez.

@VideoPlayerCode Itu solusi yang bagus! Terima kasih banyak!

@VideoPlayerCode Terima kasih atas tip yang bagus! itu tidak menyelesaikan kasus "run as administrator".

Jika ada yang mendapatkan kesalahan berikut, setelah menggunakan solusi @yanglr
explorer_error

Anda dapat menggunakan seluruh jalur, sebagai ganti% LOCALAPPDATA%:

Jadi, bukan
[HKEY_CLASSES_ROOT \ Direktori \ Latar Belakang \ shellwtcommand]
@ = "% LOCALAPPDATA% \ Microsoft \ WindowsApps \ wt.exe"

Gunakan (dengan nama pengguna Anda di tempat 'thull'):
[HKEY_CLASSES_ROOT \ Direktori \ Latar Belakang \ shellwtcommand]
@ = "" C: \ Users \ thullAppData \ Local \ Microsoft \ WindowsAppswt.exe ""

@ ad1tyawagh Senang saya membantu Anda! :-)

@lllopo Saya ingin membantu tetapi tampaknya "Jalankan sebagai administrator" tidak dimungkinkan di aplikasi Windows Store (Saya menginstal Terminal Windows melalui Chocolatey langsung dari penginstal, tetapi ini masih aplikasi Windows Store).

Inilah pengaturan saya saat ini:

  • PowerShell adalah shell default saya.
  • Konfigurasi PowerShell saya berisi baris tambahan ini:
function EditProfile { notepad "$profile" }
function GoAdmin { start-process pwsh –verb runAs }

Saat Anda mengetik GoAdmin, dialog hak admin akan muncul dan kemudian PowerShell dimulai sebagai admin di jendela shell terpisah (tidak dihosting oleh Terminal Windows), di folder tempat Anda dinavigasi. Ini nyaman dan cukup untuk saya, karena saya hanya menggunakan ini untuk menginstal / memperbarui paket chocolatey. Belum benar-benar membutuhkan hak admin untuk hal lain.

Tetapi bagi Anda, saya ingin mencoba memperbaikinya agar dapat meluncurkan Terminal Windows itu sendiri dengan hak admin. Namun, gagal:

# Works but not admin rights:
function GoAdmin { start-process "$env:LOCALAPPDATA\Microsoft\WindowsApps\wt.exe" }

function GoAdmin { start-process explorer.exe shell:appsFolder\Microsoft.WindowsTerminal_8wekyb3d8bbwe!App }

# Fails with "This command cannot be run due to the error: The file cannot be accessed by the system.":
function GoAdmin { start-process "$env:LOCALAPPDATA\Microsoft\WindowsApps\wt.exe" -verb runAs }

# Successfully launches explorer.exe as admin, which in turn launches Windows Terminal as non-admin, meh:
function GoAdmin { start-process explorer.exe shell:appsFolder\Microsoft.WindowsTerminal_8wekyb3d8bbwe!App -verb runAs }

Jadi, kecuali ada cara untuk memperbaiki kesalahan "File tidak dapat diakses oleh sistem", tidak ada cara untuk meluncurkan Terminal Windows sebagai admin melalui skrip PowerShell. Mungkin seseorang menemukan jalan keluarnya. (Edit: Sepertinya penjelasan untuk gagal meluncurkan wt sebagai admin adalah bahwa Terminal Windows diinstal sebagai pengguna non-admin dan oleh karena itu tidak dapat ditemukan oleh pengguna admin. Setidaknya begitulah cara saya memahami pesan ini . )

Jika tidak, saya harap Anda setidaknya menyukai perintah GoAdmin saya berikan di sini, yang berhasil meluncurkan jendela PowerShell terpisah sebagai admin. Ini cukup bagi saya untuk mengelola paket cokelat, jadi saya tidak terlalu keberatan bahwa ini bukan jendela Terminal Windows ... (Ini juga sangat berguna karena tidak menggunakan Terminal Windows, karena itu berarti "hak admin" shell berbeda secara visual, yang merupakan pengingat yang baik untuk tidak menggunakannya untuk pekerjaan biasa, karena hak admin berbahaya dan menyebar ke semua program yang Anda luncurkan melalui shell, jadi jangan digunakan secara sembarangan.)

NB: Ganti pwsh dengan powershell jika Anda menggunakan "Windows PowerShell" bawaan yang sudah ketinggalan zaman. Saya menggunakan PowerShell Core 6 sebagai gantinya, dari https://github.com/PowerShell/PowerShell (diinstal melalui choco install powershell-core ).

Tip lain: Saya telah menyematkan Terminal Windows itu sendiri ke posisi paling kiri di bilah tugas saya. Dengan begitu, saya dapat menekan Win + 1 untuk langsung meluncurkannya (atau memberikan fokus jika sudah diluncurkan). Sangat mudah. Ini juga berarti bahwa jika saya benar-benar ingin Terminal Windows itu sendiri dijalankan sebagai admin, saya cukup mengeklik kanan ikon bilah tugas itu, lalu klik kanan "Terminal Windows" di menu yang muncul, dan terakhir "Jalankan sebagai administrator").

Tip terakhir: Setelah mengatur startingDirectory Anda ke ".", Terminal Windows akan selalu terbuka di folder system32 jika Anda meluncurkannya dari pintasan (seperti dari bilah tugas yang disematkan atau melalui menu mulai; tetapi _not_ melalui Win + R atau melalui explorer ( metode terakhir berfungsi dengan baik)). Tetapi ada cara cepat untuk membuka folder utama Anda: Cukup ketik cd dan tekan enter untuk selalu langsung pulang.

Cara lain adalah dengan menginstal perintah sudo dari Scoop
scoop install sudo
http://blog.lukesampson.com/sudo-for-windows
Selain membiarkan Anda menjalankan perintah dalam hak istimewa yang ditinggikan, Anda juga dapat memulai sesi PowerShell / Command Prompt yang ditinggikan dengan perintah sudo powershell atau sudo cmd .

@ Restia666Ashdoll Seperti disebutkan dalam jawaban saya, tidak diperlukan perintah "sudo" pihak ketiga. PowerShell memiliki "sudo" bawaan: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/start-process?view=powershell-6#examples

Contoh 5: Mulai PowerShell sebagai administrator

Contoh ini memulai PowerShell dengan menggunakan opsi "Jalankan sebagai administrator".

Start-Process -FilePath "powershell" -Verb RunAs

Saya membungkusnya sebagai GoAdmin dalam contoh saya. Tapi seseorang juga bisa membungkusnya sebagai fungsi yang mereka beri nama "sudo" dan membuatnya mengambil perintah apa pun.

Sebagai contoh, sebagai inspirasi, saya menginginkan perintah touch untuk membuat file kosong 0-byte dengan mudah, dan saya ingin mengambil banyak argumen untuk beberapa file sekaligus. Jadi saya menulis fungsi PowerShell ini dan memasukkannya ke dalam konfigurasi saya sehingga selalu tersedia:

function touch() { for ($i=0; $i -le $args.length; $i++) { $name = $args[$i]; if ($name -ne $null -and $name.GetType().Name -eq "String") { $name = $name.Trim(); if ($name.length -gt 0) { New-Item -ItemType file "$name" } } } }

Sesuatu yang sangat mirip dapat dilakukan jika Anda ingin membuat perintah sudo generik.

Atau cukup gunakan GoAdmin seperti yang ditunjukkan di atas ...

@VideoPlayerCode Perintah itu hanya dapat digunakan untuk beberapa perintah PowerShell. Anda tidak dapat melakukan sesuatu seperti sudo pip install httpie atau sudo Install-Module oh-my-posh -Force . Heck, Anda bahkan dapat menggunakan Chocolatey dari PowerShell biasa seperti sudo choco install mpv (walaupun saya pribadi tidak suka Chocolatey). Tentu, sudo untuk windows juga memiliki keterbatasan.

@ Restia666Ashdoll Terima kasih, Anda mendorong saya untuk menulis perintah "sudo" yang saya jelaskan di atas. :-)

function sudo() {
    [string[]]$cmd = @("-command")
    for ($i=0; $i -le $args.length; $i++) {
        $val = $args[$i]
        if ($val -ne $null) {
            $cmd += [string]$val;
        }
    }
    if ($cmd.length -ge 2) {
        $cmd += "; pause"
        #Write-Host $cmd
        Start-Process pwsh -ArgumentList $cmd –Verb RunAs
    }
}

_ (Jika seseorang menggunakan powershell reguler yang sudah ketinggalan zaman yang dibundel dengan windows, maka ganti pwsh dengan powershell atas.) _

Menjalankan sudo choco install sysinternals dalam sesi non-admin sekarang akan menjalankan perintah itu dalam sesi admin.

Perhatikan bahwa Start-Process PowerShell tidak mendukung subkulit admin pemijahan yang dikeluarkan langsung di dalam kerangka non-admin "host", sehingga dijalankan di jendela sembulan, dan berhenti sebentar sehingga Anda dapat membaca hasilnya sebelum menutup jendela itu. Cukup baik untukku.

Saya memang melihat https://github.com/lukesampson/psutils/blob/master/sudo.ps1 (skrip yang Anda usulkan), tetapi rasanya agak menjengkelkan untuk memanggil fungsi kernel untuk melampirkan output dari admin subproses ke terminal yang sedang berjalan, dan mengkhawatirkan tentang " membocorkan" hak istimewa yang tidak aman ke dalam proses host atau semua eksploitasi yang menjadi mungkin ketika masukan / keluaran dari proses admin dimiliki oleh proses non-admin (astaga). Ada juga yang disebut wsudo di https://github.com/noseratio/choco/tree/master/wsudo , tetapi saya tidak benar-benar memeriksanya. Saya hanya menulis versi saya sendiri.

Terima kasih atas dorongannya, lagi. Sangat menyenangkan memiliki perintah untuk menjalankan satu tindakan dengan cepat sebagai admin. Perintah GoAdmin diposting sebelumnya masih sangat berguna untuk memulai konsol admin terpisah yang mendukung pengetikan banyak tindakan seperti biasa. Tetapi menjalankan perintah tunggal sekarang sedikit lebih mudah dengan perintah baru ini!

NB: Jika seseorang bertanya-tanya di mana harus meletakkan ini atau semua fungsi saya yang lain, cukup ketik Write-Host $Profile (host tulis adalah "echo" di PowerShell) untuk melihat jalur profil, dan buat file itu jika tidak ada, lalu letakkan fungsi di sana dan mulai ulang PowerShell.

(Fungsi "kernel" tersebut sebenarnya adalah API konsol yang didukung secara resmi oleh tim ini, mereka kebetulan berada di pustaka bernama kernel32 (untuk alasan lama.))

@ DHett-MS. Ahh. Kode sudo.ps1 oleh Luke Sampson mengatakan DllImport("kernel32.dll") , tetapi Anda mengatakan tidak apa-apa menggunakan fungsi-fungsi itu untuk mengarahkan output dari shell admin ke shell saat ini?

Terus terang itu seharusnya berperilaku seperti sudo pada sistem unix. Hampir semua orang yang menggunakan Scoop, menggunakan itu. Itu yang saya inginkan - jalankan perintah dengan hak istimewa yang ditinggikan di dalam shell saat ini. Dan itulah yang diinginkan semua orang, jika Microsoft membuat 'sudo untuk windows' yang tepat.

Terima kasih untuk diskusi yang bagus tentang topik ini! Maukah Anda mengalihkan diskusi tentang hal-hal yang bukan merupakan opsi menu konteks di tempat lain? Untuk sudo , kami memiliki # 1032

Ya, beberapa orang meminta cara untuk "sudo" dan hal-hal menjadi sedikit kacau. ;-)

@ DHowett-MSFT Maaf, karena keluar dari topik. Itu muncul karena prospek memulai terminal sebagai admin. Aku akan berhenti.

Hei, tidak masalah! Terjadi pada semua orang. :tersenyum:

Inilah solusi saya
Kerjanya hampir sama seperti PowerShell 7 dan juga dapat berjalan dengan hak Administrator
https://github.com/nt4f04uNd/wt-contextmenu
Di sana Anda dapat menemukan panduan bagaimana menerapkannya dan semua file yang dibutuhkan

@ nt4f04uNd Bisakah Anda menambahkan scoop install nicrmd ke panduan Anda?
https://github.com/ScoopInstaller/Main/blob/master/bucket/nircmd.json

@ Restia666Adoll selesai

Saya tidak melihat perlunya penggantian cmd terbuka di sini.

Di bilah alamat klik dan ketik wt.exe dan tekan enter. Terminal Windows dengan jendela penjelajahan saat ini sebagai CWD.

@ em00k Orang yang berbeda memiliki alur kerja mereka sendiri, dan tidak apa-apa: tersenyum:

Ini berfungsi untuk saya https://github.com/microsoft/terminal/issues/1060#issuecomment -497539461 dan untuk menyelesaikan direktori awal untuk folder pengguna saya, saya membuat pintasan yang bertujuan ke '% USERPROFILE%' saya dan memasukkannya ke menu start dan taskbar saya.

Tetapi akan sangat berguna jika kita dapat menggunakan parameter folder untuk membuka direktori di aplikasi wt.exe.

image

Inilah yang berhasil bagi saya untuk 0.7.3451.0 (Beberapa perubahan diperlukan untuk komentar asli @yanglr )

1) Unduh ikon resmi Windows Terminal dan letakkan di suatu tempat
https://raw.githubusercontent.com/microsoft/terminal/master/res/terminal.ico

2) Edit konfigurasi Terminal Windows. Buat profil yang Anda inginkan untuk membuka direktori saat ini dengan default.
Menambahkan
"startingDirectory": "."
ke profil itu, sehingga direktori saat ini adalah direktori awal

3) Buat dan jalankan file wt.reg, dengan yang berikut ini, gantikan item dalam tanda kurung kurawal dengan jalur nyata (mengingat garis miring ganda).

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Windows Terminal Here"
"Icon"="{full_path_to_icon}\\terminal.ico"

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="C:\\Users\\{windows_user_directory}\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe"

(Gantikan HKEY_CLASSES_ROOT untuk HKEY_CURRENT_USER jika Anda hanya ingin mengubah pengguna saat ini)

4) Uji. Ini harus membuka direktori tempat Anda berada saat Anda mengklik kanan.
Saya hanya menguji ini dengan cmd.exe sebagai profil default saya. Saya tidak tahu apakah ini berfungsi untuk jenis profil lain.

Capture

Membuka Terminal Windows yang dimulai dari folder yang saya klik kanan

Capture

Setidaknya ubah ke HKCU jadi Anda hanya mengubah akun pengguna Anda sendiri

@VideoPlayerCode terima kasih banyak orang memecahkan masalah saya dengan terminal windows

@yangshuairocks Tambang berkedip tidak hanya sekali, tetapi dua kali saat melakukan ini, kemudian meminta admin.

Saya ingin "Buka sebagai tab baru di Terminal Windows".
Saya tidak ingin desktop saya kacau dengan banyak jendela Terminal.

PS
"startingDirectory": "." menghasilkan $PWD terminal dibuka dari menu start atau taskbar C:\Windows\System32 .

Solusi sederhana dari semua komentar yang diberikan di sini: https://github.com/plexcellmedia/open-microsoft-terminal-in-current-directory

Sebenarnya Anda tidak perlu menulis jalur lengkap. Terminal ada dalam variabel PATH. Jadi panggil perintah wt mana saja.
Atau Anda dapat menyebut aplikasi UWP itu sendiri shell:AppsFolder\Microsoft.WindowsTerminal_8wekyb3d8bbwe!App

Sejak rilis v0.9.433.0 Anda sekarang dapat mengirimkan parameter baris perintah, jadi berikut ini bekerja dengan dukungan untuk beberapa profil.

wt.reg :

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\wt (Command)]
@="Open Terminal (Command)"
[HKEY_CLASSES_ROOT\Directory\shell\wt (Command)\command]
@="C:\\Users\\Sean\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe new-tab -d \"%1\" -p Command"

[HKEY_CLASSES_ROOT\Directory\shell\wt (PowerShell)]
@="Open Terminal (PowerShell)"
[HKEY_CLASSES_ROOT\Directory\shell\wt (PowerShell)\command]
@="C:\\Users\\Sean\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe new-tab -d \"%1\" -p PowerShell"

[HKEY_CLASSES_ROOT\Directory\shell\wt (Git Bash)]
@="Open Terminal (Git Bash)"
[HKEY_CLASSES_ROOT\Directory\shell\wt (Git Bash)\command]
@="C:\\Users\\Sean\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe new-tab -d \"%1\" -p \"Git Bash\""

[HKEY_CLASSES_ROOT\Directory\shell\wt (Ubuntu Bash)]
@="Open Terminal (Ubuntu Bash)"
[HKEY_CLASSES_ROOT\Directory\shell\wt (Ubuntu Bash)\command]
@="C:\\Users\\Sean\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe new-tab -d \"%1\" -p \"Ubuntu Bash\""

[HKEY_CLASSES_ROOT\Directory\shell\wt (Ubuntu Zsh)]
@="Open Terminal (Ubuntu Zsh)"
[HKEY_CLASSES_ROOT\Directory\shell\wt (Ubuntu Zsh)\command]
@="C:\\Users\\Sean\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe new-tab -d \"%1\" -p \"Ubuntu Zsh\""

profiles.json :

{
    "$schema": "https://aka.ms/terminal-profiles-schema",
    "defaultProfile": "{e5beb15e-da5c-4df7-815c-b0b0a865ef3f}",
    "initialRows": 50,
    "tabWidthMode": "titleLength",

    "profiles": {
        "defaults": {
            "cursorShape": "filledBox",
            "experimental.retroTerminalEffect": false,
            "fontFace": "Fira Code",
            "fontSize": 10,
            "padding": "2, 2, 2, 2",
            "suppressApplicationTitle": true
        },
        "list": [
            {
                "backgroundImage": "ms-appdata:///local/ubuntu.png",
                "backgroundImageAlignment": "bottomRight",
                "backgroundImageOpacity": 0.25,
                "backgroundImageStretchMode": "none",
                "commandline": "wsl.exe -d Ubuntu-18.04 --exec zsh --login",
                "colorScheme": "Solarized Dark",
                "guid": "{e5beb15e-da5c-4df7-815c-b0b0a865ef3f}",
                "icon": "ms-appdata:///local/ubuntu.png",
                "name": "Ubuntu Zsh",
                "startingDirectory": "//wsl$/Ubuntu-18.04/home/sean",
                "tabTitle": "Zsh"
            },
            {
                "backgroundImage": "ms-appdata:///local/ubuntu.png",
                "backgroundImageAlignment": "bottomRight",
                "backgroundImageOpacity": 0.25,
                "backgroundImageStretchMode": "none",
                "commandline": "wsl.exe -d Ubuntu-18.04 --exec bash --login",
                "colorScheme": "Solarized Dark",
                "guid": "{c6eaf9f4-32a7-5fdc-b5cf-066e8a4b1e40}",
                "icon": "ms-appdata:///local/ubuntu.png",
                "name": "Ubuntu Bash",
                "source": "Windows.Terminal.Wsl",
                "startingDirectory": "//wsl$/Ubuntu-18.04/home/sean",
                "tabTitle": "Bash"
            },
            {
                "backgroundImage": "ms-appdata:///local/git-for-windows.png",
                "backgroundImageAlignment": "bottomRight",
                "backgroundImageOpacity": 0.25,
                "backgroundImageStretchMode": "none",
                "commandline": "C:\\Program Files\\Git\\bin\\bash.exe --login",
                "colorScheme": "Solarized Dark",
                "guid": "{78ccd05e-83d4-46c6-9a80-8865ff8ff720}",
                "icon" : "C:\\Program Files\\Git\\mingw64\\share\\git\\git-for-windows.ico",
                "name": "Git Bash",
                "startingDirectory": "%USERPROFILE%",
                "tabTitle": "Bash"
            },
            {
                "backgroundImage": "ms-appdata:///local/powershell.png",
                "backgroundImageAlignment": "bottomRight",
                "backgroundImageOpacity": 0.25,
                "backgroundImageStretchMode": "none",
                "commandline": "powershell.exe",
                "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
                "name": "PowerShell",
                "tabTitle": "PS"
            },
            {
                "commandline": "cmd.exe",
                "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
                "name": "Command",
                "tabTitle": "Cmd"
            },
            {
                "acrylicOpacity": 0.9,
                "guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}",
                "name": "Azure Shell",
                "source": "Windows.Terminal.Azure",
                "tabTitle": "Bash",
                "useAcrylic": true
            },
            {
                "guid": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",
                "hidden": false,
                "name": "PowerShell Core",
                "source": "Windows.Terminal.PowershellCore"
            }
        ]
    },

    "schemes": [],

    "keybindings": []
}

@DHowett hanya ada satu masalah tersisa ... itu tidak menggunakan kembali contoh wt yang ada dan membuka tab baru.

@gitfool dan yang satu itu dilacak oleh # 4472: smile:

Anda dapat membuatnya _slightly_ lebih kuat dengan menggunakan %1\. daripada hanya %1 - sekarang, jika Anda membukanya di root drive, itu tidak akan melakukan apa yang Anda harapkan . Itu # 4571

Tidak yakin kenapa, tapi @gitfool reg tidak melakukannya untuk saya. Jika saya mengirimkan %V itu berhasil, misalnya

C:\Users\islevin\AppData\Local\Microsoft\WindowsApps\wt -p "cmd" -d "%V"

Kerja bagus guys, ini hampir sempurna untuk saya :)

Entri menu konteks bagus, mereka membuka folder yang diharapkan, bagus. Namun, saya meluncurkan Terminal Windows secara langsung (dari menu mulai, misalnya), direktori awal adalah folder beranda Windows saya.

Apakah ada cara untuk menjadikan ini default ke folder utama WSL saya, tanpa merusak entri menu konteks?

@rfgamaral lihat profile.json atas. Diberikan startingDirectory default di profil, menu konteks explorer akan menimpanya, jika tidak maka akan default seperti yang ditentukan. Anda hanya perlu mengganti distro Linux saya dan nama pengguna dengan milik Anda.

@gitfool Ini yang saya miliki tetapi tidak berhasil untuk saya:

{
  "guid": "{58ad8b0c-3ef8-5f4d-bc6f-13e4c00f2530}",
  "name": "Debian (WSL)",
  "commandline": "wsl.exe -d Debian --exec zsh --login",
  "startingDirectory": "//wsl$/Debian/home/ricardo",
  "acrylicOpacity": 1.0,
  "colorScheme": "Flat UI (tweaked)",
  "fontSize": 10,
  "hidden": false,
  "padding": "3, 2",
  "useAcrylic": true
}

@rfgamaral Saya tidak melihat ada yang salah dengan konfigurasi Anda. Apakah direktori home WSL Anda ada, atau apakah Anda menggunakan profil yang berbeda saat Anda meluncurkan Terminal secara langsung?

Ya, itu benar:

image

Tidak, saya hanya memiliki profil WSL ini.

@rfgamaral sistem file Linux peka huruf besar / kecil, jadi profil Anda startingDirectory harus //wsl$/Debian/home/Ricardo .

@rfgamaral sistem file Linux peka huruf besar / kecil, jadi profil Anda startingDirectory harus //wsl$/Debian/home/Ricardo .

Luar biasa, ini memperbaikinya! Terima kasih banyak :)

Mungkin ini di luar ruang lingkup masalah ini, atau mungkin tidak, saya akan menanyakannya saja ... Dengan asumsi pengaturan di atas dijelaskan oleh @gitfool , saya memiliki folder Windows ini C:\Users\Ricardo\Workspace dan kemudian saya memiliki symlink di dalam WSL seperti ~/ Workspace -> /c/Users/AmaralR/Workspace/ .

Betapa kerennya jika mengklik kanan folder Workspace di dalam explorer membuka ~/Workspace alih-alih /c/Users/AmaralR/Workspace/ ? Apakah kalian pikir ini bahkan mungkin untuk dicapai dari jarak jauh?

Ada satu masalah buat saya. Perintah Rick click hanya muncul ketika saya mengklik kanan pada folder. Namun, ketika saya mengklik kanan pada ruang kosong di dalam folder, entri terminal tidak muncul (lihat gif), meskipun VS Code dan distro WSL default saya (Pengwin) muncul. Saya mengatur Terminal, VS Code dan Pengwin ke mode Extended Shell (menahan Shift).

GIF

Konfigurasi saya saat ini:
`` Windows Registry Editor Versi 5.00

[HKEY_CLASSES_ROOT \ Direktori \ shellwt]
@ = "Buka Terminal di sini
"Diperpanjang" = ""
"Ikon" = "D: \ OneDrive \ _Apps \ .config \ .icons \ terminal.ico"

[HKEY_CLASSES_ROOT \ Directory \ shellwtcommand]
@ = "C: \ Users \ steve \ AppData \ Local \ Microsoft \ WindowsApps \ wt.exe new-tab -d"% 1 "-p" Pengwin "" ``

@Kalaschnik Anda juga memerlukan satu entri di HKCR \ Directory \ Background \ Shell \ WindowsTerminal Here

Lihat https://github.com/shanselman/WindowsTerminalHere/pull/3/files

Ketika saya mencobanya untuk meluncurkan tab cmd di terminal yang saya dapatkan

[kesalahan 0x8007010b saat meluncurkan `cmd.exe ']

Ada satu masalah buat saya. Perintah Rick click hanya muncul ketika saya mengklik kanan pada folder.

Saya tidak yakin apa masalah yang menyebabkan itu, tetapi Anda dapat memeriksa repositori ini untuk membuatnya lebih seperti PowerShell

Gif demo

Halo semua,
Saya menerapkan skrip sederhana untuk menambahkan menu konteks.
Ini bekerja untuk saya dengan terminal windows versi 0.9.433.0

Terima kasih @ nt4f04uNd dan lainnya yang menginspirasi saya

Repo: Windows-terminal-konteks-menu

Halo semua,
Saya menerapkan skrip sederhana untuk menambahkan menu konteks.
Ini bekerja untuk saya dengan terminal windows versi 0.9.433.0

Terima kasih @ nt4f04uNd dan lainnya yang menginspirasi saya

Repo: Windows-terminal-konteks-menu

Ini sangat bagus !!! namun sedikit catatan:
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7
Anda perlu Set-ExecutionPolicy ke Unrestricted untuk menjalankannya.

Juga, ini sepertinya rusak:

Copy-Item : The filename, directory name, or volume label syntax is incorrect.
At D:\Jeff\Documents\Windows-terminal-context-menu\SetupContextMenu.ps1:25 char:1
+ Copy-Item -Path "$PSScriptRoot\icons\*.ico" -Destination $resourcePat ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Copy-Item], IOException
    + FullyQualifiedErrorId : System.IO.IOException,Microsoft.PowerShell.Commands.CopyItemCommand

this dir needs to be created either prior to or as part of the execution:
$env:LOCALAPPDATA\WindowsTerminalContextIcons\

Juga, dikatakan:

PS D:\Jeff\Documents\Windows-terminal-context-menu> .\SetupContextMenu.ps1
Add top layer menu (shell) => Registry::HKEY_CLASSES_ROOT\Directory\shell\WindowsTerminal
Add top layer menu (background) => Registry::HKEY_CLASSES_ROOT\Directory\shell\WindowsTerminal
Add new entry Git Bash
Add new entry Command Prompt
Add new entry PowerShell
Add new entry Azure Cloud Shell

tetapi tidak benar-benar membuatnya dengan benar (Ikonnya hilang dan Git Bash saya hilang karena saya tidak memiliki kunci tersembunyi di dalamnya):
image

Menambahkan ini di bawah definisi global:
$gitbashIcoFileName = "git-bash.ico"

dan ini setelah baris 101:

        elseif ($commandLine -like "*Git*bash.exe*") {
            $icoPath = $gitbashIcoFileName
        }

Sepertinya tidak suka memuat ikon dari:
% LOCALAPPDATA% \ WindowsTerminalContextIcons \
... karena kunci registri terlihat bagus.

Sebagai gantinya saya mengubah baris ini menjadi:
$resourcePath = "$PSScriptRoot\icons\"

dan dihapus:
Copy-Item -Path "$PSScriptRoot\icons\*.ico" -Destination $resourcePath

Masalahnya adalah jika folder tidak ada, ikon gagal disalin, hanya menambahkan mkdir $resourcePath sebelum Copy-Item menyelesaikan bit itu. Saya membuat masalah pada repo Anda untuk itu. Selain itu, tampaknya ada masalah dengan penguraian Profil pada beberapa skenario. Bagaimanapun, terima kasih untuk naskahnya!

Hai @Nelas

Terima kasih atas tanggapan Anda.
Saya telah memperbaiki masalah tentang ikon yang hilang. Instal ulang saja, dan login ulang.
Saya tidak lebih suka menyetel $ resourcePath ke lokasi skrip. Karena pengguna dapat menghapus folder penginstal dengan alasan apapun dan kemudian ikon akan hilang lagi.

Hal kedua, bisakah Anda membagikan profil git bash Anda? Karena saya tidak menyetel Git-bash di WT saya.
Saya membutuhkan pola untuk menetapkan aturan.

Hai @Nelas

Terima kasih atas tanggapan Anda.
Saya telah memperbaiki masalah tentang ikon yang hilang. Instal ulang saja, dan login ulang.
Saya tidak lebih suka menyetel $ resourcePath ke lokasi skrip. Karena pengguna dapat menghapus folder penginstal dengan alasan apapun dan kemudian ikon akan hilang lagi.

Hal kedua, bisakah Anda membagikan profil git bash Anda? Karena saya tidak menyetel Git-bash di WT saya.
Saya membutuhkan pola untuk menetapkan aturan.

Saya telah memperbaiki semua masalah dan mengirimkan PR

@Nomelas , sayang tidak jalan buat saya. Saya mengedit config.json dan menjalankan skrip ps. Setelah mengklik ikon (tidak ada folder shell) saya menerima:
This file does not have a program associated with it for performing this action. Please install an app or, if one is already installed, create an association in the Default Apps Settings page.

Itulah potongan registri:
image

Teman-teman, saya tahu bahwa saya sedikit terlambat ke pesta ini, tetapi bagaimana cara menggunakan OpenHere ? 😉

Jalankan PowerShell dengan izin dan ketik yang lebih tinggi:

Install-Module OpenHere
Set-OpenHereShortcut -ShortcutType:WindowsTerminal

👍 yang menyukai ini!

@ nt4f04uNd Mungkin Anda harus membaca dokumentasi terlebih dahulu, khususnya Notes

saya mungkin telah melewatkannya, tetapi pengaturan memulai direktori ke "." membuka direktori instalasi terminal windows ketika dibuka dari menu start dan buka di sini menu konteks terbuka di direktori tempat Anda berada. saat menggunakan "% USERPROFILE%", membuka dua arah hanya di direktori pengguna saya.

apakah ada cara untuk membuat buka di sini berfungsi dan masih memiliki "% USERPROFILE%" sebagai jalur default saat membuka dari menu awal? buka di sini tidak bekerja dengan "% USERPROFILE%".

@eskoONE dan lainnya, ya, benar!
Ada solusi dengan menggunakan argumen -d. Lihat https://github.com/nt4f04und/wt-contextmenu

Teman-teman, saya tahu bahwa saya sedikit terlambat ke pesta ini, tetapi bagaimana cara menggunakan OpenHere ? 😉

Jalankan PowerShell dengan izin dan ketik yang lebih tinggi:

Install-Module OpenHere
Set-OpenHereShortcut -ShortcutType:WindowsTerminal

👍 yang menyukai ini!

Berhasil!! Terima kasih!

Caranya, _way_ lebih mudah dari itu untuk menambahkan satu perintah ke menu konteks folder. Itu hanya kunci registri sederhana.

Misalnya (dan kemudian Anda juga dapat menambahkan ikon, dll)

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\Open Thing Here\command]
@="C:\\thing.exe \"%1\""

Bagaimana saya bisa menambahkan opsi untuk membuka thing.exe itu hanya ketika saya menekan tombol SHIFT - seperti dengan opsi "PowerShell Window"

Teman-teman, saya tahu bahwa saya sedikit terlambat ke pesta ini, tetapi bagaimana cara menggunakan OpenHere ? 😉

Jalankan PowerShell dengan izin dan ketik yang lebih tinggi:

Install-Module OpenHere
Set-OpenHereShortcut -ShortcutType:WindowsTerminal

👍 yang menyukai ini!

Bagaimana cara menghapusnya?

Teman-teman, saya tahu bahwa saya sedikit terlambat ke pesta ini, tetapi bagaimana cara menggunakan OpenHere ? 😉
Jalankan PowerShell dengan izin dan ketik yang lebih tinggi:

Install-Module OpenHere
Set-OpenHereShortcut -ShortcutType:WindowsTerminal

👍 yang menyukai ini!

Bagaimana cara menghapusnya?

Dari dokumentasi :
Remove-OpenHereShortcut -ShortcutType:WindowsTerminal

Halo semua,
Saya menerapkan skrip sederhana untuk menambahkan menu konteks.
Ini bekerja untuk saya dengan terminal windows versi 0.9.433.0
Terima kasih @ nt4f04uNd dan lainnya yang menginspirasi saya
Repo: Windows-terminal-konteks-menu

Ini sangat bagus !!! namun sedikit catatan:
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7
Anda perlu Set-ExecutionPolicy ke Unrestricted untuk menjalankannya.

Juga, ini sepertinya rusak:

Copy-Item : The filename, directory name, or volume label syntax is incorrect.
At D:\Jeff\Documents\Windows-terminal-context-menu\SetupContextMenu.ps1:25 char:1
+ Copy-Item -Path "$PSScriptRoot\icons\*.ico" -Destination $resourcePat ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Copy-Item], IOException
    + FullyQualifiedErrorId : System.IO.IOException,Microsoft.PowerShell.Commands.CopyItemCommand

this dir needs to be created either prior to or as part of the execution:
$env:LOCALAPPDATA\WindowsTerminalContextIcons\

Juga, dikatakan:

PS D:\Jeff\Documents\Windows-terminal-context-menu> .\SetupContextMenu.ps1
Add top layer menu (shell) => Registry::HKEY_CLASSES_ROOT\Directory\shell\WindowsTerminal
Add top layer menu (background) => Registry::HKEY_CLASSES_ROOT\Directory\shell\WindowsTerminal
Add new entry Git Bash
Add new entry Command Prompt
Add new entry PowerShell
Add new entry Azure Cloud Shell

tetapi tidak benar-benar membuatnya dengan benar (Ikonnya hilang dan Git Bash saya hilang karena saya tidak memiliki kunci tersembunyi di dalamnya):
image

Skrip ini memiliki beberapa bug karena dibuat untuk versi lama Terminal Windows, saya membuat garpu untuk memperbaiki kesalahan tersebut

https://github.com/KiritoDv/Windows-terminal-context-menu

image

Hai @kiritvv
Bisakah Anda memeriksa apa versi terminal Windows Anda?
Saya menggunakan versi rilis terbaru v0.9.433.0 dan berhasil menginstal.

Terima kasih ~

Saya memiliki versi terbaru, tetapi ketika saya memperbarui file profil saya sama dari versi profil lama, Maaf untuk itu, setidaknya perubahan berfungsi untuk seseorang dengan kesalahan yang sama

Kuddos Kirito untuk pembuatan skripnya, bagus banget. Adakah kemungkinan ini akan didukung oleh WT di masa depan?

@RonaldOlsthoorn Pasti ada _chance_ - itulah mengapa masalah ini masih terbuka 😄

Jika seseorang dapat mengetahui cara menginstal entri menu konteks ini dari aplikasi yang dikemas, dan dapat memperbarui entri secara dinamis (untuk mencerminkan daftar profil), maka kami pasti tertarik untuk meninjau PR 😉 Sampai saat itu, hanya di backlog kami.

Mungkin orang yang melakukannya untuk Pengwin juga dapat melakukannya untuk Terminal (atau setidaknya memberi saran tentang apa yang mereka lakukan agar berfungsi).

Halo semua,
Saya menerapkan skrip sederhana untuk menambahkan menu konteks.
Ini bekerja untuk saya dengan terminal windows versi 0.9.433.0
Terima kasih @ nt4f04uNd dan lainnya yang menginspirasi saya
Repo: Windows-terminal-konteks-menu

Ini sangat bagus !!! namun sedikit catatan:
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7
Anda perlu Set-ExecutionPolicy ke Unrestricted untuk menjalankannya.
Juga, ini sepertinya rusak:

Copy-Item : The filename, directory name, or volume label syntax is incorrect.
At D:\Jeff\Documents\Windows-terminal-context-menu\SetupContextMenu.ps1:25 char:1
+ Copy-Item -Path "$PSScriptRoot\icons\*.ico" -Destination $resourcePat ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Copy-Item], IOException
    + FullyQualifiedErrorId : System.IO.IOException,Microsoft.PowerShell.Commands.CopyItemCommand

this dir needs to be created either prior to or as part of the execution:
$env:LOCALAPPDATA\WindowsTerminalContextIcons\

Juga, dikatakan:

PS D:\Jeff\Documents\Windows-terminal-context-menu> .\SetupContextMenu.ps1
Add top layer menu (shell) => Registry::HKEY_CLASSES_ROOT\Directory\shell\WindowsTerminal
Add top layer menu (background) => Registry::HKEY_CLASSES_ROOT\Directory\shell\WindowsTerminal
Add new entry Git Bash
Add new entry Command Prompt
Add new entry PowerShell
Add new entry Azure Cloud Shell

tetapi tidak benar-benar membuatnya dengan benar (Ikonnya hilang dan Git Bash saya hilang karena saya tidak memiliki kunci tersembunyi di dalamnya):
image

Skrip ini memiliki beberapa bug karena dibuat untuk versi lama Terminal Windows, saya membuat garpu untuk memperbaiki kesalahan tersebut

https://github.com/KiritoDv/Windows-terminal-context-menu

image

Kudos to you for the script, work like a charm.

Catatan implementasi: Manifes aplikasi PowerToys menunjukkan cara mendeklarasikan menu konteks file explorer untuk file dan folder. Saya tidak yakin apakah ini akan memerlukan pendaftaran server COM bersamaan ...

Perhatikan tumpang tindih dengan # 2189 - tampaknya sebagian besar sejajar daripada saling melengkapi.

<Extensions>
        ...
        <com:Extension Category="windows.comServer">
          <com:ComServer>
            <com:ExeServer Executable="modules\PowerRenameUWPUI.exe" DisplayName="PowerRenameUWPUI">
              <com:Class Id="0440049F-D1DC-4E46-B27B-98393D79486B"/>
            </com:ExeServer>
          </com:ComServer>
        </com:Extension>
        <desktop4:Extension Category="windows.fileExplorerContextMenus">
          <desktop4:FileExplorerContextMenus>
            <desktop4:ItemType Type="*">
              <desktop4:Verb Id="FilePowerRename" Clsid="0440049F-D1DC-4E46-B27B-98393D79486B" />
            </desktop4:ItemType>
            <desktop5:ItemType Type="Directory">
              <desktop5:Verb Id="DirectoryPowerRename" Clsid="0440049F-D1DC-4E46-B27B-98393D79486B" />
            </desktop5:ItemType>
          </desktop4:FileExplorerContextMenus>
        </desktop4:Extension>

Saya belum menelusuri kode sumbernya.
Tidak begitu yakin apa fungsi panggilan balik dari profiles.json diubah🤔.

Milik saya bekerja setelah menghabiskan banyak waktu untuk membaca komentar orang.😃

Langkah-langkah untuk Menambahkan "terminal Windows di sini" ke menu konteks klik kanan:
1) Unduh terminal windows dari toko Microsoft

2) Di https://github.com/yanglr/WindowsDevTools/blob/master/awosomeTerminal/icons/wt_32.ico
ikon unduh dengan nama file wt_32.ico

3) Buka CMD Anda dan jalankan perintah ini mkdir "%USERPROFILE%\AppData\Local\terminal"

4) Salin ikon terminal windows (yang telah Anda unduh pada Langkah 2) ke folder C: \ Users [nama-pengguna-Anda] AppData \ Local \ terminal
(Contoh ikon milik saya untuk disalin: C: \ Users \ DellAppData \ Local \ terminal)

5) Buka notpad dan tulis kode di bawah ini

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Windows terminal here"
"Icon"=C:\\Users\\[your-user-name]\\AppData\\Local\\terminal\\wt_32.ico

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="C:\\Users\\[your-user-name]\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe"

6) Catatan:
Di [nama-pengguna-Anda] tulis nama pengguna Anda.
misalnya nama pengguna saya adalah Dell, jalur saya nantinya

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Windows terminal here"
"Icon"=C:\\Users\\DELL\\AppData\\Local\\terminal\\wt_32.ico

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="C:\\Users\\DELL\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe"

Simpan file sebagai wt.reg di Desktop Anda (atau di mana saja di PC Anda) dan buka
(tekan OK semua)
7) Uji dengan klik kanan => Pilih terminal windows di sini
[Terminal Windows (Pratinjau) akan terbuka] 👍

Ini masih tidak berfungsi ketika menambahkan menu konteks ke drive di File Explorer. Ini membuka WT sebentar dan kemudian menutupnya. Ada petunjuk bagaimana menyelesaikan masalah khusus ini?

@ 4k3or3et Saya tidak yakin apa yang Anda maksud tetapi pekerjaan @ atif-dev dan lainnya seperti @ zadjii-msft cukup berlebihan karena ada modul Windows PowerShell yang sepenuhnya mencakup ini termasuk rollback dan kustomisasi.

@ 4k3or3et Saya tidak yakin apa yang Anda maksud tetapi pekerjaan @ atif-dev dan lainnya seperti @ zadjii-msft cukup berlebihan karena ada modul Windows PowerShell yang sepenuhnya mencakup ini termasuk rollback dan kustomisasi.

Sama seperti Anda menambahkan item menu konteks di HKEY_CLASSES_ROOT\Direcroty\shell Anda juga dapat menambahkannya di HKEY_CLASSES_ROOT\Drive\shell . Anda kemudian mendapatkan item menu konteks saat Anda mengklik kanan pada drive di File Explorer.

Masalahnya adalah ketika Anda menambahkan "C:\Users\PROFILE\AppData\Local\Microsoft\WindowsApps\wt.exe -d "%V" -p "Debian" yang berfungsi dalam kasus folder, itu tidak untuk drive di File Explorer. WT kemudian terbuka sebentar dan ditutup karena suatu alasan.

Pertanyaan saya adalah apakah ada yang tahu mengapa Terminal Windows tidak dapat menangani "% V" dalam kasus Drive?

Terima kasih.

Pintasannya harus %V\.

Pintasannya harus %V\.

Oh man! Ini luar biasa !!!

Ini berfungsi untuk drive dan folder ...

Apakah Anda akan bersikap seperti itu dan menjelaskan kepada saya "sains" di balik "% V"? Apa bedanya dengan "% V" biasa?

Jadi ini adalah salah satu "masalah aneh" itu. "%V" di root drive berkembang menjadi "C:\" . Sebagian besar parser argumen perintah menangani \" sebagai " , karena \ adalah karakter "escape". Oleh karena itu, ini mengubah jalur dari "C:\" menjadi C:" (menghapus kutipan pertama, dan memakan kutipan kedua).

Menggunakan "%V\." membuat root drive berkembang menjadi "C:\\." , yang sepenuhnya legal.

Jadi ini adalah salah satu "masalah aneh" itu. "%V" di root drive berkembang menjadi "C:\" . Sebagian besar parser argumen perintah menangani \" sebagai " , karena \ adalah karakter "escape". Oleh karena itu, ini mengubah jalur dari "C:\" menjadi C:" (menghapus kutipan pertama, dan memakan kutipan kedua).

Menggunakan "%V\." membuat root drive berkembang menjadi "C:\\." , yang sepenuhnya legal.

Dimengerti. Sekali lagi terima kasih atas bantuan Anda.

Saya telah menginstalnya melalui toko, tetapi Windows memberi tahu saya "Aplikasi tidak ditemukan" ketika saya meletakkan wt.exe sebagai perintah di kunci registri. Jika saya mengubahnya ke jalur lengkap, yaitu %LOCALAPPDATA%\Microsoft\WindowsApps\wt.exe , saya mendapatkan kesalahan "tidak dapat mengakses" (bukan hak yang benar untuk item ini).

Saat ini saya memiliki perintah yang ditambahkan sebagai cmd.exe /C start wt.exe , dan ini berfungsi, meskipun prompt cmd lama berkedip di layar saat membuka wt.

Saya telah menginstalnya melalui toko, tetapi Windows memberi tahu saya "Aplikasi tidak ditemukan" ketika saya meletakkan wt.exe sebagai perintah di kunci registri. Jika saya mengubahnya ke jalur lengkap, yaitu %LOCALAPPDATA%\Microsoft\WindowsApps\wt.exe , saya mendapatkan kesalahan "tidak dapat mengakses" (bukan hak yang benar untuk item ini).

Saat ini saya memiliki perintah yang ditambahkan sebagai cmd.exe /C start wt.exe , dan ini berfungsi, meskipun prompt cmd lama berkedip di layar saat membuka wt.

ubah melalui regedit% LOCALAPPDATA% pada alamat asli seperti "C: \ Users \ [user] AppData \ Local"

dan kemudian saya menambahkan "startingDirectory": "%__CD__%" ke profile.json

Saya telah menginstalnya melalui toko, tetapi Windows memberi tahu saya "Aplikasi tidak ditemukan" ketika saya meletakkan wt.exe sebagai perintah di kunci registri. Jika saya mengubahnya ke jalur lengkap, yaitu %LOCALAPPDATA%\Microsoft\WindowsApps\wt.exe , saya mendapatkan kesalahan "tidak dapat mengakses" (bukan hak yang benar untuk item ini).
Saat ini saya memiliki perintah yang ditambahkan sebagai cmd.exe /C start wt.exe , dan ini berfungsi, meskipun prompt cmd lama berkedip di layar saat membuka wt.

ubah melalui regedit% LOCALAPPDATA% pada alamat asli seperti "C: \ Users [user] AppData \ Local"

dan kemudian saya menambahkan "startingDirectory": "%__CD__%" ke profile.json

Terima kasih, tampaknya ini memang pendekatan yang benar, menggunakan jalur yang diperluas alih-alih %LOCALAPPDATA% . Saya menggunakan "startingDirectory": "." yang juga berfungsi seperti yang diharapkan.

@ Wosser1sProductions cukup gunakan cmd.exe /s /k pushd "%V" daripada perintah apapun itu.

Intinya adalah membuka Terminal Windows baru ( wt.exe dapat dieksekusi) dari menu konteks. Nilai default untuk membuka prompt perintah biasa adalah cmd.exe /s /k pushd "%V" .

Inilah solusinya.

Hal buruk tentang file reg adalah Anda perlu menambahkan jalur wt pengguna tertentu (karena UWP menginstal per pengguna) dalam konteks HKEY_CLASSES_ROOT. Saya mencoba menggantinya dengan HKEY_CURRENT_USER tetapi tidak berhasil untuk saya.

JIKA ada cara untuk menginstal seluruh sistem WT dalam folder "global", itu akan menjadi praktik yang lebih baik

Izinkan saya menambahkan file reg saya ke sini, sehingga orang lain dapat menggunakannya:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Windows Terminal Here"
"Icon"="E:\\Resimler\\ico\\terminal.ico"

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="D:\\WindowsApps\\Microsoft.WindowsTerminal_0.10.781.0_x64__8wekyb3d8bbwe\\WindowsTerminal.exe"

@ Pertama adalah teks yang akan muncul di menu konteks (_ "Terminal Windows Di Sini" _)
"Ikon" adalah jalur ikon yang juga akan terlihat pada menu konteks.
Kedua @ adalah jalur terminal exe. Anda perlu mencari tahu di mana itu.

Sesuaikan dan tempel kode ini ke file txt dan ganti namanya menjadi _wt.reg_. Daripada menjalankannya.

Kemudian buka terminal windows baru Anda. Pergi ke pengaturan:
image

Di sini kita berada di profiles.json
Tempel kode-kode itu di dalamnya:


{
    "$schema": "https://aka.ms/terminal-profiles-schema",
    "defaultProfile": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
    "profiles":
    {
        "defaults":
        {
        },
        "list":
        [
            {
                "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
                "name": "cmd",
                "commandline": "cmd.exe",
                "hidden": false,
                "startingDirectory": "."
            },
            {
                "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
                "name": "Windows PowerShell",
                "commandline": "powershell.exe",
                "hidden": false
            },
            {
                "guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}",
                "hidden": false,
                "name": "Azure Cloud Shell",
                "source": "Windows.Terminal.Azure"
            },
            {
                "guid": "{2c4de342-38b7-51cf-b940-2309a097f518}",
                "hidden": false,
                "name": "Ubuntu",
                "source": "Windows.Terminal.Wsl"
            }
        ]
    },
    "schemes": [],
    "keybindings": []
}


Itu dia

di sini adalah skrip registri saya, itu menggunakan argumen baris perintah. Saya mengonfigurasinya untuk nama Profil default Ubuntu CMD, Powershell dan WSL, dengan perintah normal dan Admin. Itu tidak memerlukan perubahan apa pun pada profiles.json, tidak seperti kebanyakan skrip yang pernah saya lihat dalam masalah ini
https://gist.github.com/OmegaRogue/9069405e7b0bf5e76f1c5d9c96f8b663

Tak satu pun dari opsi ini adalah sesuatu yang sangat saya sukai. Jadi, saya mencoba.

Saya mengubah solusi @OmegaRogue . Saya tidak suka bersarang, jadi saya mencoba membagi admin dan non admin menjadi menu terpisah.

image

Sayangnya, saya tidak tahu cara mendapatkan perintah admin di level yang sama. Inilah yang saya miliki:
image

Ini file .reg saya
Saya telah meninggalkan beberapa komentar untuk membantu orang mengetahui bagian mana yang melakukan apa, sehingga mungkin seseorang dapat membantu memperbaiki penyarangan admin.

Tak satu pun dari opsi ini adalah sesuatu yang sangat saya sukai. Jadi, saya mencoba.

Saya mengubah solusi @OmegaRogue . Saya tidak suka bersarang, jadi saya mencoba membagi admin dan non admin menjadi menu terpisah.

image

Sayangnya, saya tidak tahu cara mendapatkan perintah admin di level yang sama. Inilah yang saya miliki:
image

Ini file .reg saya
Saya telah meninggalkan beberapa komentar untuk membantu orang mengetahui bagian mana yang melakukan apa, sehingga mungkin seseorang dapat membantu memperbaiki penyarangan admin.

Saya dapat mengubah file saya untuk melakukannya dan untuk menghapus bersarang admin

@OmegaRogue Bagus, tapi saya kira ikon menu utama akan mati dengan sebuah versi (dan jalur WindowsTerminal.exe berubah). Mungkin menggantinya dengan ikon yang lebih dapat diakses secara universal akan lebih baik.

Sunting: Juga jika Anda berhasil menambahkan opsi admin (dari @ t-makaro) tanpa masalah bersarang akan lebih bagus.

Lucu, bagaimana @lllopo @OmegaRogue @ t-makaro @sundowatch dan lainnya menciptakan kembali sebuah roda.

File reg memiliki kesalahan yang sama berulang kali. Mereka tidak memiliki roll back atau tes. Mereka tidak bekerja pada jalur dengan karakter non-ASCII seperti ě š č ř í é ý é ů atau Anda harus mengubah pengaturan Terminal Anda.

Silakan lihat di sini saja.

Lucu, bagaimana @lllopo @OmegaRogue @ t-makaro @sundowatch dan lainnya menciptakan kembali sebuah roda.

File reg memiliki kesalahan yang sama berulang kali. Mereka tidak memiliki roll back atau tes. Mereka tidak bekerja pada jalur dengan karakter non-ASCII seperti ě š č ř í é ý é ů atau Anda harus mengubah pengaturan Terminal Anda.

Silakan lihat di sini saja.

Saya tahu masalahnya, dan versi yang saya gunakan tidak memilikinya, saya baru saja memposting versi ini agar mudah dibaca, versi saya menggunakan teks yang dikodekan hex (2) alih-alih string normal

Orang-orang kemudian melupakan efek samping jika Anda menambahkan "startingDirectory": "." untuk bekerja dengan pengeditan Registri yang menambahkan klik kanan untuk membuka di folder saat ini, yang sekarang jika Anda hanya membuka Terminal melalui menu mulai, itu terbuka ke direktori system32

Orang-orang kemudian melupakan efek samping jika Anda menambahkan "startingDirectory": "." untuk bekerja dengan pengeditan Registri yang menambahkan klik kanan untuk membuka di folder saat ini, yang sekarang jika Anda hanya membuka Terminal melalui menu mulai, itu terbuka ke direktori system32

itulah alasan mengapa skrip saya tidak membutuhkannya

Tak satu pun dari opsi ini adalah sesuatu yang sangat saya sukai. Jadi, saya mencoba.

Saya mengubah solusi @OmegaRogue . Saya tidak suka bersarang, jadi saya mencoba membagi admin dan non admin menjadi menu terpisah.

image

Sayangnya, saya tidak tahu cara mendapatkan perintah admin di level yang sama. Inilah yang saya miliki:
image

Ini file .reg saya
Saya telah meninggalkan beberapa komentar untuk membantu orang mengetahui bagian mana yang melakukan apa, sehingga mungkin seseorang dapat membantu memperbaiki penyarangan admin.

saya telah menambahkan versi skrip registri saya ke inti yang tidak bersarang:
https://gist.github.com/OmegaRogue/9069405e7b0bf5e76f1c5d9c96f8b663#file -directory_prompts_windowsterminal_nonnested-reg

Apakah ini:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Windows Terminal here"
"Icon"="C:\\Program Files\\WindowsApps\\Microsoft.WindowsTerminal_0.10.781.0_x64__8wekyb3d8bbwe\\WindowsTerminal.exe"

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="C:\\Users\\<user>\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe -d %V"

[HKEY_CLASSES_ROOT\Directory\shell\wt]
@="Windows Terminal here"
"Icon"="C:\\Program Files\\WindowsApps\\Microsoft.WindowsTerminal_0.10.781.0_x64__8wekyb3d8bbwe\\WindowsTerminal.exe"

[HKEY_CLASSES_ROOT\Directory\shell\wt\command]
@="C:\\Users\\<user>\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe -d %V"
  • laksanakan

Apakah ini:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Windows Terminal here"
"Icon"="C:\\Users\\<user>\\AppData\\Local\\Terminal\\terminal.ico"

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="C:\\Users\\<user>\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe -d ."

[HKEY_CLASSES_ROOT\Directory\shell\wt]
@="Windows Terminal here"
"Icon"="C:\\Users\\<user>\\AppData\\Local\\Terminal\\terminal.ico"

[HKEY_CLASSES_ROOT\Directory\shell\wt\command]
@="C:\\Users\\<user>\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe -d ."
  • laksanakan

Anda tidak perlu mengunduh ikon, Anda cukup menggunakan jalur yang dapat dieksekusi sebagai jalur ikon, seperti yang saya lakukan di skrip registri saya

Nah, kita perlu mengedit file reg setiap kali terminal windows diperbarui? lebih baik menyimpan file ikon di tempat lain

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Windows Terminal here"
"Icon"="C:\\Program Files\\WindowsApps\\Microsoft.WindowsTerminal_0.11.1121.0_x64__8wekyb3d8bbwe\\WindowsTerminal.exe"

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="C:\\Users\\user\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe -d ."

[HKEY_CLASSES_ROOT\Directory\shell\wt]
@="Windows Terminal here"
"Icon"="C:\\Program Files\\WindowsApps\\Microsoft.WindowsTerminal_0.11.1121.0_x64__8wekyb3d8bbwe\\WindowsTerminal.exe"

[HKEY_CLASSES_ROOT\Directory\shell\wt\command]
@="C:\\Users\\user\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe -d ."

Saya perhatikan bahwa mengklik kanan folder dan meluncurkan terminal tidak berfungsi dengan benar, itu terbuka di folder kontainer.
Datang ke solusi dengan mengganti wt.exe -d . dengan wt.exe -d "%V" dalam skrip registri, itulah cara VS Code melakukannya.

Ini skrip registri tetap yang saya gunakan (tidak ada ikon)

Edit: Menambahkan% V. seperti yang disarankan, dan klik kanan ke drive.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\wt]
@="Open Windows Terminal here"
[HKEY_CLASSES_ROOT\Directory\shell\wt\command]
@="C:\\Users\\user\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe -d \"%V.\""

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Open Windows Terminal here"
[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="C:\\Users\\user\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe -d \"%V.\""

[HKEY_CLASSES_ROOT\Drive\shell\wt]
@="Open Windows Terminal here"
[HKEY_CLASSES_ROOT\Drive\shell\wt\command]
@="C:\\Users\\user\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe -d \"%V.\""

Solusi ini bekerja dengan baik, terima kasih.

@BealeStBluesBoy dan @ megapro17 Terima kasih atas file reg Anda.
Saya perhatikan bahwa wt.exe -d \"%V\" tidak terbuka dengan benar dengan folder yang dipilih tetapi tidak berfungsi ketika Anda berada di root drive. Contoh pada c: atau d: . Ini membuka terminal tetapi dengan kode kesalahan 0x8007010b
Selain itu, saat Anda memilih drive dan menjalankan perintah itu, kesalahan lain muncul dan terminal bahkan tidak terbuka.

Namun, dengan wt.exe -d . terminal terbuka tanpa masalah, tidak peduli di mana Anda berada. Sisi negatifnya adalah, ini hanya membuka direktori tempat Anda berada saat ini, bukan direktori yang Anda pilih. Ketika Anda memilih drive secara langsung, itu hanya terbuka di folder c:\windows\system32 .

Saya akan tetap menggunakan wt.exe -d . karena selalu membuka terminal yang dapat digunakan.

EDIT:
Seperti yang disarankan @ DHowett-MSFT di bawah ini, ada opsi lain wt.exe -d \"%V\.\" . Ini meningkatkan perilaku dan membuat terminal terbuka bahkan ketika Anda berada di root drive. Satu hal yang masih tidak berfungsi dengan solusi ini adalah ketika Anda memilih drive. Ini masih menghasilkan kesalahan.

Offtopic: Masalah ini adalah cara yang besar untuk membaca setiap komentar :) Maaf untuk masalah posting ganda.

Coba "%V\." , seperti yang disarankan beberapa kali di utas ini.

Bagaimana cara Anda menambahkan run as admin juga?

Bisakah kita beralih ke admin melalui terminal?

Bisakah kita beralih ke admin melalui terminal?

Tidak sekarang dengan Terminal Windows vanilla. Mungkin WT v2.0, lihat # 5000. Namun, ada solusi: Anda dapat menggunakan gsudo, Sudo open source untuk Windows.
https://github.com/gerardog/gsudo

Karena saya penulisnya, saya merasa berkewajiban untuk memperingatkan bahwa secara teknis mungkin saja malware yang dibuat secara khusus berpotensi mengirim penekanan tombol ke konsol sudo'ed dan melewati isolasi UAC / dan meningkatkan hak istimewa.

Berbicara tentang cara cmd, sudah ada perintah cmd bernama runas yang menanyakan kata sandi (mirip dengan sudo ).
https://en.wikipedia.org/wiki/Runas

Bisakah kita beralih ke admin melalui terminal?

Tidak sekarang dengan Terminal Windows vanilla. Mungkin WT v2.0, lihat # 5000. Namun, ada solusi: Anda dapat menggunakan gsudo, Sudo open source untuk Windows.
https://github.com/gerardog/gsudo

Karena saya penulisnya, saya merasa berkewajiban untuk memperingatkan bahwa secara teknis mungkin saja malware yang dibuat secara khusus berpotensi mengirim penekanan tombol ke konsol sudo'ed dan melewati isolasi UAC / dan meningkatkan hak istimewa.

Bagaimana jika kami memeriksa akses yang tidak diinginkan melalui beberapa mekanisme keamanan? Apakah itu berhasil? GSudo adalah awal yang baik.

@BealeStBluesBoy dan @ megapro17 Terima kasih atas file reg Anda.
Saya perhatikan bahwa wt.exe -d \"%V\" tidak terbuka dengan benar dengan folder yang dipilih tetapi tidak berfungsi ketika Anda berada di root drive. Contoh pada c: atau d: . Ini membuka terminal tetapi dengan kode kesalahan 0x8007010b
Selain itu, saat Anda memilih drive dan menjalankan perintah itu, kesalahan lain muncul dan terminal bahkan tidak terbuka.

Namun, dengan wt.exe -d . terminal terbuka tanpa masalah, tidak peduli di mana Anda berada. Sisi negatifnya adalah, ini hanya membuka direktori tempat Anda berada saat ini, bukan direktori yang Anda pilih. Ketika Anda memilih drive secara langsung, itu hanya terbuka di folder c:\windows\system32 .

Saya akan tetap menggunakan wt.exe -d . karena selalu membuka terminal yang dapat digunakan.

EDIT:
Seperti yang disarankan @ DHowett-MSFT di bawah ini, ada opsi lain wt.exe -d \"%V\.\" . Ini meningkatkan perilaku dan membuat terminal terbuka bahkan ketika Anda berada di root drive. Satu hal yang masih tidak berfungsi dengan solusi ini adalah ketika Anda memilih drive. Ini masih menghasilkan kesalahan.

Offtopic: Masalah ini adalah cara yang besar untuk membaca setiap komentar :) Maaf untuk masalah posting ganda.

@brainfoolong Ada masalah lain selain root drive, tetapi saya telah memecahkan semua masalah ini di sini . ✌

Bagaimana cara Anda menambahkan run as admin juga?

@aminya Saya mematikan UAC dan menonaktifkan Admin Approval Mode (AAM) seperti BrainSlugs83 menjawab di https://superuser.com/questions/462174/winr-runs-as-administrator-in-windows-8.
Jika Anda tidak peduli dengan masalah keamanan atau efek samping apa pun yang ditimbulkannya, setelah melakukan ini Terminal Windows akan berjalan sebagai Administrator secara default, sehingga tidak diperlukan pengaturan lebih lanjut setelah menggunakan skrip registri di atas.

Saya akhirnya memperbaiki masalahnya 🚀. Gabungkan saja ini.

Ini memiliki tombol admin tanpa masalah keamanan apa pun.

File Reg umum

(Jika Anda tidak memiliki PowerShellCore, ini lebih lambat):

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Open Windows Terminal Here"
"Icon"="cmd.exe"

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="PowerShell -windowstyle hidden -Command \"Start-Process wt.exe -ArgumentList \\\"-d\\\",\\\"%V.\\\"\""

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt_admin]
@="Open Windows Terminal Here as Admin"
"Icon"="cmd.exe"
"HasLUAShield"=""

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt_admin\command]
@="PowerShell -windowstyle hidden -Command \"Start-Process wt.exe -ArgumentList \\\"-d\\\",\\\"%V.\\\" -Verb RunAs\""

[HKEY_CLASSES_ROOT\Directory\shell\wt]
@="Open Windows Terminal Here"
"Icon"="cmd.exe"

[HKEY_CLASSES_ROOT\Directory\shell\wt\command]
@="PowerShell -windowstyle hidden -Command \"Start-Process wt.exe -ArgumentList \\\"-d\\\",\\\"%V.\\\"\""


[HKEY_CLASSES_ROOT\Directory\shell\wt_admin]
@="Open Windows Terminal Here as Admin"
"Icon"="cmd.exe"
"HasLUAShield"=""

[HKEY_CLASSES_ROOT\Directory\shell\wt_admin\command]
@="PowerShell -windowstyle hidden -Command \"Start-Process wt.exe -ArgumentList \\\"-d\\\",\\\"%V.\\\" -Verb RunAs\""

File Reg Lebih Cepat

(Jika Anda memiliki PowerShellCore)

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Open Windows Terminal Here"
"Icon"="cmd.exe"

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="pwsh -windowstyle hidden -Command \"Start-Process wt.exe -ArgumentList \\\"-d\\\",\\\"%V.\\\"\""

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt_admin]
@="Open Windows Terminal Here as Admin"
"Icon"="cmd.exe"
"HasLUAShield"=""

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt_admin\command]
@="pwsh -windowstyle hidden -Command \"Start-Process wt.exe -ArgumentList \\\"-d\\\",\\\"%V.\\\" -Verb RunAs\""

[HKEY_CLASSES_ROOT\Directory\shell\wt]
@="Open Windows Terminal Here"
"Icon"="cmd.exe"

[HKEY_CLASSES_ROOT\Directory\shell\wt\command]
@="pwsh -windowstyle hidden -Command \"Start-Process wt.exe -ArgumentList \\\"-d\\\",\\\"%V.\\\"\""


[HKEY_CLASSES_ROOT\Directory\shell\wt_admin]
@="Open Windows Terminal Here as Admin"
"Icon"="cmd.exe"
"HasLUAShield"=""

[HKEY_CLASSES_ROOT\Directory\shell\wt_admin\command]
@="pwsh -windowstyle hidden -Command \"Start-Process wt.exe -ArgumentList \\\"-d\\\",\\\"%V.\\\" -Verb RunAs\""

Anda dapat mengunduh ikon dari sini dan mengganti jalur unduhannya (escape \ ) dengan cmd.exe :
https://raw.githubusercontent.com/microsoft/terminal/master/res/terminal.ico

Mode admin -windowstyle hidden sepertinya juga diabaikan

Mode admin

Anda mungkin perlu memulai ulang explorer.exe

-windowstyle hidden sepertinya juga diabaikan

Ini menunjukkan jendela sejenak.

beberapa skrip admin tidak berfungsi untuk saya, saya tidak yakin mengapa, tetapi saya perhatikan bahwa git bash (berbicara tentang vscode yang tampaknya memiliki banyak titik entri open with vs code tersebar di registri) ditampilkan di lebih banyak menu daripada beberapa solusi yang ditawarkan jadi saya membuat versi sederhana dari @OmegaRogue
ini menggunakan "%USERPROFILE%\AppData\Local\Microsoft\WindowsApps\wt.exe" "-d" "." sebagai perintah, seperti yang disarankan
https://gist.github.com/YoraiLevi/283532872b26b93e562b04812821db25

Windows Registry Editor Version 5.00

;drive
[HKEY_CLASSES_ROOT\Drive\shell\wt]
@="Open Windows Terminal Here"
"Icon"="cmd.exe"

[HKEY_CLASSES_ROOT\Drive\shell\wt\command]
@=hex(2):22,00,25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,4c,\
  00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,00,4c,00,\
  6f,00,63,00,61,00,6c,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,\
  00,74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,41,00,70,00,70,00,\
  73,00,5c,00,77,00,74,00,2e,00,65,00,78,00,65,00,22,00,20,00,22,00,2d,00,64,\
  00,22,00,20,00,22,00,2e,00,22,00,00,00
;end drive


;background 1
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\wt]
@="Open Windows Terminal Here"
"Icon"="cmd.exe"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\wt\command]
@=hex(2):22,00,25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,4c,\
  00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,00,4c,00,\
  6f,00,63,00,61,00,6c,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,\
  00,74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,41,00,70,00,70,00,\
  73,00,5c,00,77,00,74,00,2e,00,65,00,78,00,65,00,22,00,20,00,22,00,2d,00,64,\
  00,22,00,20,00,22,00,2e,00,22,00,00,00
;end background 1

;libary folders, like what git does
[HKEY_CLASSES_ROOT\LibraryFolder\Background\shell\wt]
@="Open Windows Terminal Here"
"Icon"="cmd.exe"

[HKEY_CLASSES_ROOT\LibraryFolder\Background\shell\wt\command]
@=hex(2):22,00,25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,4c,\
  00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,00,4c,00,\
  6f,00,63,00,61,00,6c,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,\
  00,74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,41,00,70,00,70,00,\
  73,00,5c,00,77,00,74,00,2e,00,65,00,78,00,65,00,22,00,20,00,22,00,2d,00,64,\
  00,22,00,20,00,22,00,2e,00,22,00,00,00
;end library folders 

;background 2
[HKEY_CLASSES_ROOT\Directory\background\shell\wt]
@="Open Windows Terminal Here"
"Icon"="cmd.exe"

[HKEY_CLASSES_ROOT\Directory\background\shell\wt\command]
@=hex(2):22,00,25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,4c,\
  00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,00,4c,00,\
  6f,00,63,00,61,00,6c,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,\
  00,74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,41,00,70,00,70,00,\
  73,00,5c,00,77,00,74,00,2e,00,65,00,78,00,65,00,22,00,20,00,22,00,2d,00,64,\
  00,22,00,20,00,22,00,2e,00,22,00,00,00
;end background 2

Saya baru saja membuat dua skrip PowerShell untuk menginstal / menghapus item menu konteks, dan membagikannya di GitHub di

https://github.com/lextm/windowsterminal-shell

Logikanya mirip dengan yang diusulkan @ nerdio01 , tetapi tata letak menu sedikit berbeda (perbarui: sekarang mendukung beberapa tata letak).

image

Dengan install.ps1 dan uninstall.ps1 , Anda tidak perlu lagi mengimpor file kunci registri dan bertanya-tanya bagaimana cara menghapusnya jika Anda tidak suka.

Permintaan tarik diterima.

Agak menjengkelkan karena ikon berada di jalur berversi, adakah cara yang lebih baik untuk merujuknya selain hanya mengirimkan ikon saya?

Menurut saya, harus mengedit registri secara manual bukanlah solusi yang ideal. Bagian dari nilai jual proyek ini adalah bahwa ia mendukung beberapa jenis shell (pwsh, cmd, ubuntu, apa pun) dan daftar ini dapat bervariasi dari pengguna ke pengguna. Skrip registri tetap tidak akan memotongnya.
Seseorang juga harus ingat untuk secara manual menghapus perubahan yang dibuat pada registri saat mencopot pemasangan Terminal Windows.

Apakah ada desain / pertimbangan teknis / batasan khusus yang akan menghalangi fitur ini dibangun ke dalam Terminal Windows itu sendiri? Atau lebih kepada masalah tenaga kerja, prioritas dan waktu?

tenaga kerja, prioritas dan waktu

Pasti yang itu. Jika saya memiliki semua waktu teknik untuk dihabiskan, saya ingin menawarkan ekstensi shell aktual yang mendeteksi profil Anda dan menampilkannya di menu, dan membiarkan Anda menelurkan shell dalam contoh Terminal yang sudah berjalan.

Setelah memikirkannya, saya pikir mungkin ada cara yang lebih sederhana untuk mendekati ini. Bagaimana jika hanya ada satu entri statis di menu konteks, yang ketika diklik akan membuka Terminal Windows di mana mereka kemudian diminta untuk memilih profil.

Ini akan menghilangkan kebutuhan untuk memelihara sekumpulan kunci registri yang dinamis. Dan buat agar file pengaturan tidak perlu diurai dan diperiksa untuk perubahan profil pada setiap klik kanan.

Saya belum membiasakan diri dengan basis kode proyek ini, jadi saya tidak dapat mengatakan dengan pasti apakah itu akan mengurangi jumlah pekerjaan yang diperlukan untuk mengimplementasikan ini. Tapi saya ingin mendengar pendapat Anda tentang itu.

cukup ketik wt di addressbar di windows explorer di folder mana saja dan tekan enter

Jika ada yang mencoba @ llevo3 tip mengetik wt di bilah alamat penjelajah seperti yang Anda lakukan dengan cmd tidak bekerja untuk Anda.

Kemudian pastikan yang berikut ini ada di variabel lingkungan PATH Anda
%USERPROFILE%\AppData\Local\Microsoft\WindowsApps

cukup ketik wt di addressbar di windows explorer di folder mana saja dan tekan enter

@ llevo3 ini tidak membuka terminal windows di direktori saat ini. Melainkan terbuka dengan direktori default.

@abdulghanitech masalah yang sangat spesifik ini telah dibahas tidak kurang dari 30 kali di utas ini. 😄

cukup ketik wt di addressbar di windows explorer di folder mana saja dan tekan enter

@ llevo3 ini tidak membuka terminal windows di direktori saat ini. Melainkan terbuka dengan direktori default.

jika Anda ingin membuka direktori saat ini, cukup gunakan opsi -d di depan alamat
ex
wt -d [path you want to go]

Untuk memperjelas, Anda dapat membuka direktori saat ini dengan mengetik wt -d .

T: Setelah terminal dibuka dengan wt -d . , apakah ada cara untuk menggunakan jalur yang sama untuk instans terminal baru (tab / panel)?

Terima kasih kepada semua orang yang mengomentari solusi dan pendekatan berbeda untuk menerapkan ini dengan benar. Saya membuatnya bekerja dengan Konsol 2. Menggunakan "Buka di sini" dengan bendera -d . bekerja dengan sempurna.

Permisi, bagaimana saya bisa memperbaikinya

image

Sobat, jangan datang ke utas yang tidak terkait untuk mengajukan pertanyaan. Laporkan bug baru dan tim dapat melihatnya 😄

@miniksa @ zadjii-msft @ DHowett-MSFT @factormystic @ChrisGuzak

Saya memecahkan masalah sekarang, itu bisa ditutup. Terima kasih banyak untuk semua yang terlibat dalam diskusi ini.

Langkah 0:

Uji apakah dua konstanta di bawah berfungsi dengan baik yang akan digunakan dalam mengikuti langkah-langkah lain.

echo %USERPROFILE%

echo %LOCALAPPDATA%

Jika semuanya bekerja dengan baik di sini, maka kedua konstanta ini dapat digunakan secara langsung di langkah-langkah lain di bawah ini.

Atau silakan lakukan penggantian berikut dalam langkah-langkah di bawah ini:

% USERPROFILE% → C:\Users\[userName]
% LOCALAPPDATA% → C:\Users\[userName]\AppData\Local

Di sini [userName] mewakili nama pengguna Anda, misalnya, nama saya adalah Bruce .

Langkah 1:
Jalankan di bawah barang-barang di CMD :

mkdir "%USERPROFILE%\AppData\Local\terminal"

image

Langkah 2:
Salin icon terminal windows ke folder %USERPROFILE%\AppData\Local\terminal , icon tersebut dapat diperoleh di https://github.com/yanglr/WindowsDevTools/tree/master/awosomeTerminal/icons yang nama filenya wt_32.ico .

Langkah 3:
Simpan konten follwing sebagai wt.reg , lalu jalankan sebagai administrator.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Windows terminal here"
"Icon"="%USERPROFILE%\\AppData\\Local\\terminal\\wt_32.ico"

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="%LOCALAPPDATA%\\Microsoft\\WindowsApps\\wt.exe"

Yang perlu diperhatikan , jika exe yang diperoleh setelah kode bangunan sendiri adalah wtd.exe , Anda perlu mengubah wt.exe menjadi wtd.exe dalam registri di atas.

Langkah 4:
Uji
image

Saya punya masalah dengan solusi ini, beberapa masalah izin, jika itu dapat membantu seseorang
menggantikan
@="%LOCALAPPDATA%\\Microsoft\\WindowsApps\\wt.exe"
dengan
@="C:\\Users\\YOURUSERNAME\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe -d ."

Dari pemahaman saya, variabel lingkungan yang dikodekan persen harus menggunakan jenis string yang dapat diperluas ( REG_EXPAND_SZ ) agar dapat ditafsirkan dengan benar, itulah sebabnya saya yakin beberapa solusi lain tidak sepenuhnya berfungsi 1 . Saya membuat skrip Registry di bawah ini yang menggunakan string yang dapat diperluas sehingga Anda tidak perlu mengubah nama pengguna, Anda mungkin ingin mengubah jalur ikon .

Saya juga menambahkan tindakan / opsi untuk membuka sebagai administrator.

Windows Registry Editor Version 5.00

;Binary data is just UTF16 (LE) split every 2 bytes with a comma
;Conversion done with https://onlineutf8tools.com/convert-utf8-to-utf16?hex=true&little-endian=true&space=false&chain=split-string%253Fsplit-by-length%253Dtrue%2526separator%253D%252C

;User action
[HKEY_CLASSES_ROOT\Directory\Background\shell\WindowsTerminal]
@="Open Terminal here"
;"Icon"="%USERPROFILE%\Pictures\Icons\terminal.ico" (Location to ICO or comment out to hide icon)
"Icon"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,4c,00,45,00,25,00,5c,00,50,00,69,00,63,00,74,00,75,00,72,00,65,00,73,00,5c,00,49,00,63,00,6f,00,6e,00,73,00,5c,00,74,00,65,00,72,00,6d,00,69,00,6e,00,61,00,6c,00,2e,00,69,00,63,00,6f,00

;User action command
[HKEY_CLASSES_ROOT\Directory\Background\shell\WindowsTerminal\command]
;@="%LOCALAPPDATA%\Microsoft\WindowsApps\wt.exe -d ."
@=hex(2):25,00,4c,00,4f,00,43,00,41,00,4c,00,41,00,50,00,50,00,44,00,41,00,54,00,41,00,25,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,41,00,70,00,70,00,73,00,5c,00,77,00,74,00,2e,00,65,00,78,00,65,00,20,00,2d,00,64,00,20,00,2e,00

;Admin action
[HKEY_CLASSES_ROOT\Directory\Background\shell\WindowsTerminalAdmin]
@="Open Terminal here (Admin)"
;Show the UAC shield on the action
"HasLUAShield"=""
;"Icon"="%USERPROFILE%\Pictures\Icons\terminal.ico" (Location to ICO or comment out to hide icon)
"Icon"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,4c,00,45,00,25,00,5c,00,50,00,69,00,63,00,74,00,75,00,72,00,65,00,73,00,5c,00,49,00,63,00,6f,00,6e,00,73,00,5c,00,74,00,65,00,72,00,6d,00,69,00,6e,00,61,00,6c,00,2e,00,69,00,63,00,6f,00

;Admin action command
[HKEY_CLASSES_ROOT\Directory\Background\shell\WindowsTerminalAdmin\command]
@="PowerShell -WindowStyle Hidden -Command \"Start-Process wt -ArgumentList '-d','.' -Verb runAs\""
  1. https://superuser.com/a/599025

Dari pemahaman saya, variabel lingkungan yang dikodekan persen harus menggunakan jenis string yang dapat diperluas ( REG_EXPAND_SZ ) agar dapat ditafsirkan dengan benar, itulah sebabnya saya yakin beberapa solusi lain tidak _fully_ berfungsi1. Saya membuat skrip Registry di bawah ini yang menggunakan string yang dapat diperluas sehingga Anda tidak perlu mengubah nama pengguna, Anda mungkin ingin mengubah jalur ikon .

Saya juga menambahkan tindakan / opsi untuk membuka sebagai administrator.

Windows Registry Editor Version 5.00

;Binary data is just UTF16 (LE) split every 2 bytes with a comma
;Conversion done with https://onlineutf8tools.com/convert-utf8-to-utf16?hex=true&little-endian=true&space=false&chain=split-string%253Fsplit-by-length%253Dtrue%2526separator%253D%252C

;User action
[HKEY_CLASSES_ROOT\Directory\Background\shell\WindowsTerminal]
@="Open Terminal here"
;"Icon"="%USERPROFILE%\Pictures\Icons\terminal.ico" (Location to ICO or comment out to hide icon)
"Icon"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,4c,00,45,00,25,00,5c,00,50,00,69,00,63,00,74,00,75,00,72,00,65,00,73,00,5c,00,49,00,63,00,6f,00,6e,00,73,00,5c,00,74,00,65,00,72,00,6d,00,69,00,6e,00,61,00,6c,00,2e,00,69,00,63,00,6f,00

;User action command
[HKEY_CLASSES_ROOT\Directory\Background\shell\WindowsTerminal\command]
;@="%LOCALAPPDATA%\Microsoft\WindowsApps\wt.exe -d ."
@=hex(2):25,00,4c,00,4f,00,43,00,41,00,4c,00,41,00,50,00,50,00,44,00,41,00,54,00,41,00,25,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,41,00,70,00,70,00,73,00,5c,00,77,00,74,00,2e,00,65,00,78,00,65,00,20,00,2d,00,64,00,20,00,2e,00

;Admin action
[HKEY_CLASSES_ROOT\Directory\Background\shell\WindowsTerminalAdmin]
@="Open Terminal here (Admin)"
;Show the UAC shield on the action
"HasLUAShield"=""
;"Icon"="%USERPROFILE%\Pictures\Icons\terminal.ico" (Location to ICO or comment out to hide icon)
"Icon"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,4c,00,45,00,25,00,5c,00,50,00,69,00,63,00,74,00,75,00,72,00,65,00,73,00,5c,00,49,00,63,00,6f,00,6e,00,73,00,5c,00,74,00,65,00,72,00,6d,00,69,00,6e,00,61,00,6c,00,2e,00,69,00,63,00,6f,00

;Admin action command
[HKEY_CLASSES_ROOT\Directory\Background\shell\WindowsTerminalAdmin\command]
@="PowerShell -WindowStyle Hidden -Command \"Start-Process wt -ArgumentList '-d','.' -Verb runAs\""
  1. https://superuser.com/a/599025

Hei terima kasih untuk ini, saya akhirnya tidak menggunakan ini karena ini memunculkan jendela Windows PowerShell saat diluncurkan dengan cara yang tinggi namun itu membuat saya melihat lebih dalam ke dalamnya dan saya telah membuat repositori saya sendiri dengan skrip instalasi yang mudah untuk siapa pun yang menginginkan entri menu konteks untuk Terminal Windows.

Untuk pembaca selanjutnya dari utas panjang ini,

  • Microsoft memutuskan untuk memasukkan item menu konteks Windows Explorer-nya sendiri. Itulah mengapa masalah ini ditutup. Namun, karena siklus rilis mereka, ini tidak akan mendarat di mesin Anda (melalui Microsoft Store untuk Windows 10) dalam beberapa minggu (atau bulan). Sejauh ini, mereka mengembangkan ekstensi shell sederhana dengan beberapa fungsi inti.
  • Jika Anda benar-benar membutuhkan menu konteks saat ini, Anda harus menambahkan item menu tersebut sendiri menggunakan salah satu metode di utas panjang ini. Untuk meringkas,

    • Impor kunci registri.
    • Gunakan beberapa file batch. (seperti ini )
    • Gunakan beberapa skrip PowerShell. (seperti ini )

Apa pun yang Anda pilih, laporkan masalah kepada pemilik repo tersebut agar mereka dapat memperbaikinya.

  • Namun, karena siklus rilis mereka, ini tidak akan mendarat di mesin Anda (melalui Microsoft Store untuk Windows 10) dalam beberapa minggu (atau bulan)

Oh, pasti lebih cepat dari bulan 😉

: tada: Masalah Windows Terminal Preview v1.1.1671.0 .: tada:

Tautan yang berguna:

Bukankah seharusnya tautan Store Download ke Pratinjau Terminal Windows (https://www.microsoft.com/store/apps/9n8g5rfz9xk3?cid=storebadge&ocid=badge)? 🤔

@DHowett oh tidak, kami perlu memperbarui bot

Sepertinya saya masih akan menggunakan skrip batch saya untuk saat ini karena yang vanilla tidak menyertakan opsi yang ditinggikan, saya yakin dengan lebih banyak waktu versi vanilla akan mendapatkan lebih banyak opsi dan atau fitur, terima kasih banyak kepada pria itu yang mengajukan permintaan tarik!

Huh, kami benar-benar perlu memperbarui bot. Lol.

Maaf untuk pesan di luar topik, tetapi jika Anda telah menginstal versi rilis dan versi pratinjau, yang akan dipanggil saat menjalankan wt?

Saya menebak apa pun yang telah Anda tetapkan di alias eksekusi Aplikasi di pengaturan Windows:
image

Ya.

Akan lebih baik jika ikon terminal juga disertakan dalam menu konteks

Akan lebih baik jika ikon terminal juga disertakan dalam menu konteks

Hei wadda ya tahu, itu # 6246.

Tolong atas cinta semua orang dalam masalah ini (Anda semua 111 ), silakan periksa masalah ini:
https://github.com/microsoft/terminal/issues?q=is%3Aopen+is%3Aissue+label%3AArea-ShellExtension

sebelum mengomentari "man akan lebih keren jika menu konteks melakukan ..."

Bukankah seharusnya tautan Store Download ke Pratinjau Terminal Windows ( microsoft.com/store/apps/9n8g5rfz9xk3?cid=storebadge&ocid=badge )? 🤔

@DHowett oh tidak, kami perlu memperbarui bot

Huh, kami benar-benar perlu memperbarui bot. Lol.

Oke.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat