Powershell: Buat pwsh sebagai nama pendek untuk memanggil powershell.exe

Dibuat pada 11 Jul 2017  ·  127Komentar  ·  Sumber: PowerShell/PowerShell

Memori otot dari pengalihan cmd ke PowerShell sangat menyebalkan. Ini diperparah oleh fakta bahwa itu jauh lebih lama daripada mengetik cmd atau bash. Bahkan dengan Pencarian Windows di Mulai, sering kali ISE mengambil jika Anda telah menggunakannya beberapa saat, jadi mengetik nama lengkap sering kali diperlukan.

Nama yang lebih baik adalah posh.exe atau ekstensi valid lainnya. Ini selama bash dan hanya satu karakter lebih panjang dari cmd. Posh telah menjadi singkatan yang diterima di komunitas untuk semua hal tentang PowerShell sehingga ada beberapa keakraban di sana. Saya tidak percaya ada konflik dengan aplikasi lain yang akan menyebabkannya, tetapi itu perlu digali.

Ini dapat dicapai dengan dua cara.

  1. Buat pintasan resmi atau tautan simbolik bernama posh yang akan mereferensikan PowerShell.exe
  2. Ubah nama powershell.exe menjadi posh.exe.

Yang pertama mempertahankan kompatibilitas ke belakang dan memungkinkan pengguna untuk memilih antara posh atau powershell.exe. Skrip yang ada tidak terpengaruh.

Yang terakhir ini dapat membantu memberikan lebih banyak kebebasan untuk masalah seperti # 4199 dan proposal POSIX lainnya tentang bagaimana shell dimulai. Namun, ini adalah perubahan yang dapat merusak dan perlu ditinjau untuk dampak dan implikasi brandingnya.

Menurut saya, membuat pintasan resmi yang mewah adalah opsi terbaik dengan dampak minimal. Dokumentasi baru dapat memberikan preferensi kepada mewah sebagai cara untuk memasuki PowerShell.

Area-SideBySide Committee-Reviewed Issue-Discussion Resolution-Fixed

Komentar yang paling membantu

Saya akan memilih psh - proyek yang Anda sebut sebagai tabrakan belum pernah dirilis dalam 10 tahun, dan tidak pernah ada dalam repo paket sama sekali.

Semua 127 komentar

Saya ingin alias pendek juga, tapi inilah mengapa kami tidak memilih posh saat pertama kali keluar (kami membicarakannya panjang lebar). Tampaknya masih merupakan paket terbaru juga.

Terbuka untuk saran lain, tetapi sebagian besar saran yang jelas telah diambil. Setelah satu-satunya alias wget / curl, saya benar-benar ingin menghindari bertabrakan dengan paket lain di luar sana, meskipun mereka kurang umum.

Saya tidak terlalu tergila-gila dengan seluruh gagasan ini, tetapi bagaimana dengan pwsh ?

Saya tidak pernah tertarik pada kemewahan sebagai shortening dari PowerShell. pwsh tampaknya lebih baik tetapi pencarian internet cepat menimbulkan beberapa kemungkinan masalah. jika kita akan melakukan ini saya sarankan sesingkat mungkin jadi bagaimana dengan ps saja?

OK - lupakan itu - Saya baru menyadari ps adalah alias untuk proses-get. itu akan terlalu membingungkan

Saya semakin kuat deja vu sekarang. 😉

Saya menghargai keterbacaan PowerShell (saat tidak menggunakan alias) jadi menjalankan powershell berfungsi dengan baik untuk saya.

ps adalah perintah yang ada di Linux juga.

Beberapa ide lainnya adalah: pscmd , psc , monad , psh , pshell

Pasti ada hasil yang berkurang dengan nama-nama ini meskipun pada apakah mereka benar-benar menyimpan sesuatu atau hanya menambah kebingungan yang tidak perlu jika mereka tersedia.

CoreSh , pcs , psc

Mosh terlalu buruk diambil. psh diambil. [pshell] mengembalikan banyak hit. Menariknya, pencarian msh di Bing dan Google memunculkan banyak hit untuk PowerShell (menyebutnya Microsoft Shell), meskipun ada msh di Unix (mungkin tidak banyak digunakan)

😄 S #, P #

@ PowerShell / powershell-committee membahas hal ini dan terbuka untuk memiliki nama symlink yang lebih pendek, tetapi kami tidak dapat mengabaikan siapa pun yang sudah ada. prsh sepertinya baik-baik saja.

Tunggu tunggu! Saya mengerti: ^sh - atau apakah itu **sh ? (jk).

prsh tampaknya reasonabe - lebih mudah untuk mengetik daripada pwsh , misalnya, meskipun pwrsh - meskipun 1 karakter. lebih panjang - juga patut dipertimbangkan, mengingat "pwr" adalah singkatan dari "power".

Opsi lain, kemungkinan _complementary_: berikan variabel _automatic_ yang nilainya _invariably_ mencerminkan jalur yang sama dari biner yang meluncurkan sesi saat ini.

bash memiliki $BASH untuk itu.

Keuntungan dari pendekatan ini adalah tidak terpengaruh oleh variasi / manipulasi $env:PATH .

Kami sudah memiliki $PSHOME - bisa dibilang, sesuatu seperti $PS tidak terlalu berlebihan.

Yang mengatakan, ini berkaitan dengan diskusi tentang tidak mencemari namespace global dengan variabel otomatis - lihat # 4216.

.Net Core, CoreFX, CoreCLR, PowerShell Core - kami dapat menganggap "inti" sebagai basis.

pscore tampaknya baik-baik saja bagi saya meskipun tidak diakhiri dengan sh meskipun anggota Komite lainnya memveto

pscore atau coreps - LGTM.

Kita dapat mengingat monad dan msh (disebutkan di atas).

Saya suka pwrsh yang terbaik sejauh ini. pscore juga lumayan meskipun mulai agak gondrong di 6 karakter. Empat atau kurang karakter mungkin ideal tetapi saya bisa hidup dengan 5 karakter yang dibutuhkan oleh pwrsh .

Perhatian saya tentang menggabungkan kata "inti" adalah bahwa ia tidak membawa informasi berguna pada platform Unix, di mana tidak ada edisi lain yang perlu dibedakan.

@rkeithhill bagaimana dengan pscx , ha! Pengalaman Inti PowerShell. Padahal, itu membuatku memikirkan yang lain, pscsh , PowerShell Core Shell.

Saya sendiri bingung dengan beberapa nama yang sama. Saya suka keterbacaan pwrsh dan pscore tapi saya setuju bahwa 5 karakter adalah batasnya. 5 karakter mencakup kata pertama power dan lebih dari itu Anda mungkin juga mengetikkan semuanya. monad adalah telur paskah yang bagus dan mudah dibaca, tetapi membingungkan bagi mereka yang tidak tahu latar belakang PowerShell. 4 karakter prsh bekerja dengan baik juga.

Akan lebih baik untuk membuat daftar akhir nama yang dapat digunakan dan melakukan jajak pendapat resmi seperti yang dilakukan oleh tim Edge. Jika ada Komunitas PS atau acara resmi yang akan datang, tautan ke polling dapat diberikan untuk mencoba dan menjangkau audiens yang lebih besar.

@ arbainrambey2 :

pscsh hampir mendekati csh - sebuah asosiasi yang harus kita hindari.

Sekali lagi, saya tidak melihat ada manfaatnya memasukkan kata "inti", terutama jika ada kemungkinan edisi tersebut akan disatukan suatu hari nanti (dan di _Windows_, orang-orang tampaknya hidup nyaman tanpa nama pendek untuk _Windows PowerShell_ selama satu dekade yang baik) .

Ketidakjelasan ulang monad disetujui

Pilihan pribadi saya adalah pwsh , prsh , atau pwrsh .

PS: Jika _Windows PowerShell_ juga membutuhkan nama pendek, cukup awalan dengan w bisa menjadi solusinya, meskipun di antara favorit saya yang benar-benar hanya (cukup) menggulung keyboard sebagai wprsh , jadi di skenario nama pendek dua edisi pilihan saya adalah untuk pasangan prsh / wprsh .

Perhatian saya tentang menggabungkan kata "inti" adalah bahwa ia tidak membawa informasi berguna pada platform Unix, di mana tidak ada edisi lain yang perlu dibedakan.

:-) Haruskah kita mengganti nama .Net Core?

@iSazonov : Haruskah kita mengganti nama Windows PowerShell menjadi "Windows PowerShell .NET Framework [FullCLR]?"

Saya akan memilih psh - proyek yang Anda sebut sebagai tabrakan belum pernah dirilis dalam 10 tahun, dan tidak pernah ada dalam repo paket sama sekali.

@Jayul :

psh ? Entahlah - membutuhkan lebih banyak "inti", jika Anda bertanya kepada saya.

Selain bercanda: poin yang sangat baik tentang status proyek dan ketidakhadirannya dari repo paket.

psh juga memilih saya (dan wpsh untuk Windows PowerShell).

(Diucapkan 'pshaw' dan 'whiplash', masing-masing).

psh juga memilih saya (dan wpsh untuk Windows PowerShell).
(Diucapkan 'pshaw' dan 'whiplash', masing-masing).

Apakah Anda yakin kita tidak bisa hanya menggunakan posh di windows, dan mengucapkannya pish posh? 🤡

Pish-tosh! Itu terlalu banyak kesalahan untuk seluruh mishpocha. 🤡

Saya akan memilih psh - proyek yang Anda sebut sebagai tabrakan belum dirilis dalam 10 tahun, dan tidak pernah ada dalam repo paket sama sekali.

Tidak ada masalah copywrite?

Tidak ada masalah hak cipta?

Saya berharap seseorang yang benar-benar _mengetahui_ akan mempertimbangkannya, tetapi _guess_ saya adalah bahwa ini tidak akan menjadi perhatian karena 2 alasan:

  • psh bukanlah nama produk resmi, hanya sebuah inisialisme (lebih longgar, akronim) yang hanya merupakan bantuan teknis (meskipun dalam penggunaan populer pada akhirnya dapat menjadi singkatan umum untuk nama produk lengkap; itu _mungkin untuk merek dagang inisialisasi / akronim).

  • Masalah merek dagang sering kali tentang kemungkinan _confusion_ dengan merek dagang yang ada, dan dari apa yang telah kita lihat di sini, setidaknya di ruang perangkat lunak tampaknya tidak ada benturan (menurut saya pembuat psh sudah ada secara virtual sudah mati)

Jika seseorang ingin bereksperimen / membutuhkan solusi sementara:

Berikut adalah solusi semua-alias yang mendefinisikan alias baik di dalam maupun di luar PowerShell, di semua platform yang didukung: psh untuk PS Core, dan wpsh untuk Windows PowerShell.

  • Jalankan SEKALI berikut untuk mengatur alias DI LUAR PowerShell (untuk cmd.exe di Windows, untuk bash di Unix):
  # Note: 
  #   * On Unix, this will define alias `psh` for *interactive* Bash sessions,
  #     via initialization file ~/.bashrc (Linux) or ~/.bash_profile (macOS).
  #   * On Windows, this defines doskey.exe-based aliases `psh` and `wpsh`
  #     via registry key [HKEY_CURRENT_USER\Software\Microsoft\Command Processor],
  #     value 'AutoRun', and even though *any* cmd.exe instance will run
  #     these alias definitions, they only work in *interactive* ones.
  #     Note that both aliases open a new window.
if ($env:OS -eq 'Windows_NT') {
  $cmd = 'doskey wpsh=start powershell.exe & doskey psh=powershell.exe -nologo -command "psh"'
  $currVal =  try { Get-ItemPropertyValue 'HKCU:\Software\Microsoft\Command Processor' AutoRun } catch {}
  if (-not (Select-String -Quiet -SimpleMatch -Pattern "$cmd" -InputObject $currVal)) {
    if ($currVal) { $cmd += " & $currVal" }
    Set-ItemProperty 'HKCU:\Software\Microsoft\Command Processor' AutoRun $cmd
  }
} else {
  $cmd = 'alias psh=powershell'
  $initFile = ("$HOME/.bashrc", "$HOME/.bash_profile")[(uname) -eq 'Darwin']
  if (-not (Select-String -Quiet -LiteralPath $initFile -Pattern "^\s*$cmd\b")) {
    Add-Content -LiteralPath $initFile -Encoding utf8 "`n$cmd"
  }
}
  • Masukkan yang berikut ini ke $PROFILE untuk menentukan alias yang sama di dalam PowerShell - berfungsi di PS Core dan Windows PS:
  # ===
  # Portable alias definitions for PowerShell Core (`psh`) 
  # and, on Windows, for Windows PowerShell (`wpsh`) too.
  #
  # Place them in $PROFILE.
  #
  # * On Unix, invoking `psh` always runs the new instance in the current terminal window.
  # * On Windows, only invoking the same edition runs in the current console window.
  #   Invoking the respective other edition opens a new window; if you also
  #   pass a command, add -NoExit to keep the new window open.
  #
  # ===
  if ($env:OS -eq 'Windows_NT') { # on Windows
    if ($PSVersionTable.PSEdition -eq 'Core') { # running in a PS Core session
      # PS Core alias: Invoke the same binary that started the current session.
      Set-Alias psh "$PSHOME\powershell.exe"
      # Windows PowerShell alias
      function wpsh {
        # Assume a fixed location in SYSTEM32.
        $exe = "$env:SYSTEMROOT\System32\WindowsPowerShell\v1.0\powershell.exe"
        $psModulePathSav = $env:PSModulePath
        try {
          # Note: We must remove all *\PowerShell\* entries from $env:PSModulePath, because they are Core-specific
          #       and interfere with module loading in Windows PowerShell.
          # Note that Start-Process -UseNewEnvironment is NOT an option: see https://github.com/PowerShell/PowerShell/issues/3545
          $env:PSModulePath = (($env:PSModulePath -split ';') -notmatch '[/\\]PowerShell[/\\]') -join ';'
          # Start Windows PowerShell in a new window.
          $htArgs = if ($Args.Count) { @{ Args = $Args } } else { @{} } 
          Start-Process $exe <strong i="18">@htArgs</strong>
        } finally {
          $env:PSModulePath = $psModulePathSav
        }
      }
    } else { # running in a Windows PowerShell session
      # PS Core alias:
      Function psh {
        # Given that the PS Core *.exe is not in $env:PATH as of PowerShell Core v6.0.0-beta.5, determine its location.
        # Since multiple versions may be installed, find the highest version installed.
        # Unfortunately on PSv5.1- [semver] ([System.Management.Automation.SemanticVersion]) is not available, so we fall back to the *.exe files' last-write timestamp.
        # WISHFUL THINKING: Set-Alias psh ((Get-ChildItem -Directory $env:ProgramFiles\PowerShell | Sort-Object -Descending { [semver] $_.Name })[0].FullName + '\powershell.exe')
        $exe = ((Get-ChildItem -File $env:ProgramFiles\PowerShell\*\powershell.exe | Sort-Object -Descending LastWriteTime)[0].FullName)
        # Note: The Core-specific module directories are automatically added to $env:PSModulePath, so no other action is required.
        # Start PS Core in a new window.
        $htArgs = if ($Args.Count) { @{ Args = $Args } } else { @{} } 
        Start-Process $exe <strong i="19">@htArgs</strong>
      }
      # Windows PowerShell alias: invoke the same executable that started the current session.
      Set-Alias wpsh "$PSHOME\powershell.exe"
    }
  } else { # on Unix (Linux, macOS)
    # Simply invoke the same binary that started the current session.
    Set-Alias psh "$PSHOME/powershell"
  }

Bagaimana dengan Paua ? Ini mengacu pada cangkang paua yang indah (kerang laut dari Selandia Baru). Kalau tidak, saya pikir psh juga bagus.
Paua Shell

Anda menjual kerang dari Pesisir Selandia Baru? (Hanya bercanda. Memang indah.)

Penafian: berikut ini hanya untuk minat [hobi] ahli bahasa.

Secara fonetik, paua hanya berfungsi untuk dialek non-rhotic Inggris (mis., Inggris, NZ, Australia).

Dan orang Boston.

@ PowerShell / PowerShell-committee harus menutup ini untuk beta.8

Bagaimana Posh6

Bagaimana Posh6

Rasanya seperti itu akan ketinggalan zaman lebih cepat daripada memasukkan nomor versi dalam ekstensi file ...;)

Ya, tetapi skrip shell yang meluncurkannya akan tahu versi apa yang dijalankannya.

Meskipun saya suka posh , saya pikir perhatian utamanya adalah bahwa ada paket yang sudah ada untuk Linux bernama Posh jadi untuk menghindari insiden curl , saya pikir pilihan terbaik berikutnya adalah pwsh

Saya suka pwsh . Sangat menyenangkan memiliki 10 tahun yang lalu. Saya merindukan msh .

Saya memilih psh .
gnp / psh tidak pernah berkomitmen selama hampir 5 tahun. Mungkin juga meninggalkan perangkat lunak.

Saya benci mengatakannya, tetapi ini adalah salah satu hal yang mungkin terlalu sulit untuk mengumpulkan konsensus yang kuat. : \

Pada titik ini, untuk menutup semuanya, dan untuk menghindari segala jenis tabrakan (lebih "itikad baik" daripada legal), saya setuju dengan pwsh .

Izinkan saya bertanya seperti ini: apakah ada yang punya alasan kuat untuk tidak menggunakan pwsh ?

Adakah yang khawatir jika pwsh adalah nama yang dapat dieksekusi dan powershell adalah symlink / pintasan?

Sebelum kita membuat persetujuan di sini, kita harus menjawab apa itu versi "saat ini" dan bagaimana kita akan merujuknya dan versi targetnya?

@iSazonov tidak yakin saya mengerti pertanyaan Anda. Ini tidak terkait dengan powershell -v N jika itu yang Anda tanyakan. Ini memungkinkan penggunaan pwsh alih-alih powershell (meskipun kami masih mendukung mengeja powershell ).

Perhatian saya lebih tentang symlink seperti PowerShell -> PowerShell-6.0.0-beta.7
Jika berbicara tentang bahasa kami suka alias dalam sesi interaktif karena memberi kami lingkungan yang nyaman tetapi alias itu sakit kepala besar dalam skrip. Saya melihat hal yang sama untuk nama pendek PowerShell - mungkin bagus untuk tipe kecepatan tetapi mungkin benar-benar masalah untuk pohon direktori (symlink).

Pikiran lain. Haruskah kita memikirkan tipe kecepatan? Tidak semua kasus yang diajukan bagus dari perspektif ini.
Pikiran terakhir adalah tentang pengucapan. Menariknya, dalam bahasa Rusia kami menggunakan "пош" ("posh") dan hypocorism "пошик" ("poshik") sejak kelahiran PowerShell. Saya rasa setiap pria Rusia akan memilih "mewah" atau "psh".

Hanya untuk memperjelas, pwsh tidak akan menjadi alias (dalam istilah PowerShell), itu harus sesuatu yang dapat Anda panggil dari cmd.exe atau file batch karena secara fisik ada. Meskipun tidak jelas bagi saya bagaimana sebenarnya kami menerapkan ini jika kami ingin mendukung nama pendek dan powershell tanpa memiliki dua file yang dapat dieksekusi (meskipun poweshell.exe relatif cukup kecil ...).

Adapun posh dan psh vs pwsh , perhatian utama dengan posh dan psh adalah bahwa mereka sudah ada (terlepas dari seberapa adalah). Kami memiliki masalah sejak awal dengan curl alias karena bertentangan dengan alat asli yang ada dan (mungkin kami terlalu berhati-hati di sini) kami mencoba untuk menghindari situasi serupa dengan tangan pendek itulah sebabnya kami sedang condong ke pwsh . Mungkin jika saya mengetik pwsh cukup sering orang akan terbiasa :)

Sisi lain. Bagaimana kami menyelesaikan hal yang sama di PowerShell? Kami menyarankan pengguna alias dan IntelliSense untuk mulai mengetik.
Ketika kami membahas alias di salah satu diskusi di sini, kami mengatakan bahwa semua alias saat ini tidak boleh hanya-baca - kami harus mengizinkan pengguna untuk menghapus / mengubah alias apa pun. Dengan kata lain, alias tidak harus standar secara eksklusif. Hanya nama cmdlet dasar yang harus standar. Dari sudut pandang ini, kami tidak boleh menawarkan alias "standar" untuk "PowerShell" - komunitas atau distributif mana pun harus dapat memilih nama yang mereka suka dan yang sesuai dengan semangat mereka, mereka juga dapat menawarkan IntelliSense.

@ SteveL-MSFT - Saya pikir 'pwsh' mungkin akan melekat pada orang dengan baik.

Yang sedang berkata, kalian menyebut kejadian curl sebagai alasan untuk tidak menggunakan 'psh'. Saya merasa itu bermasalah karena Anda hanya membuat diri Anda sendiri (kami) terpojok dengan menggambar kesejajaran terlalu jauh!

'curl' adalah salah satu alat yang paling banyak digunakan di dunia linux. Adalah bijaksana untuk terlalu berhati-hati agar tidak mengulangi 'curl' snafu untuk perangkat lunak 'hidup' / 'aktif' tetapi mengapa kesopanan ini harus diperluas ke perangkat yang ditinggalkan ?

Biarkan insiden keriting memberi kita pelajaran, bukan yang salah.

Untuk mendukung saran @AdilHindistan , izinkan saya mengulangi analisis langsung @Jaykul (utasnya menjadi panjang, sulit untuk dilacak):

Saya akan memilih psh - proyek yang Anda sebut sebagai tabrakan belum dirilis dalam 10 tahun, dan tidak pernah ada dalam repo paket sama sekali.

Dengan kata lain: Fakta bahwa psh tampaknya tidak pernah menjadi bagian dari repositori paket (utama) (saya hanya memeriksa apt (Ubuntu, Debian) dan yum (Fedora, RedHat)) - yaitu, selalu merupakan produk _niche_ - ​​_and_ yang dapat untuk semua maksud dan tujuan dianggap ditinggalkan setelah 10+ tahun tidak aktif menjadikannya kandidat yang sempurna.

(Sebaliknya, fakta bahwa posh masih merupakan paket yang tersedia melalui apt , terlepas dari status pemeliharaannya, mendiskualifikasinya, menurut pendapat saya.)

Saya setuju dengan poin yang dibuat bahwa psh adalah opsi yang layak dan harus dipertimbangkan

Adapun cara _implement_ nama pendek sebagai symlink / stub, dengan asumsi nama executable sebenarnya akan tetap powershell[.exe] :

Mari kita asumsikan bahwa nama pendeknya adalah, katakanlah, psh (hanya untuk memilih salah satu nama yang dibahas, secara acak).

Platform Unix

Penginstal akan _additionally_ harus melakukan hal berikut ini:

# Linux
/usr/bin$ sudo ln -s powershell psh

# macOS
/usr/local/bin$ sudo ln -s powershell psh

Dengan kata lain: membuat symlink tambahan bernama psh yang hanya menunjuk ke yang ada powershell symlink.

Di macOS, ini akan menghasilkan rantai symlink seperti berikut:

/usr/local/bin/psh@ -> /usr/local/bin/powershell@ -> /usr/local/microsoft/powershell/6.0.0-beta.7/powershell

Oleh karena itu, shell pemanggil apa pun, termasuk PS Core itu sendiri, akan dapat menggunakan psh sebagai alternatif yang lebih pendek dari powershell .

Windows

Di Windows, segalanya menjadi lebih rumit:

  • setidaknya pada beta.7, dari _outside_ dari PS _Core_, hanya _Windows_ PowerShell yang ada di PATH.
  • Harus ada singkatan yang berbeda untuk Windows PowerShell vs. Powershell Core untuk permintaan yang ditargetkan: psh untuk PS Core dan wpsh untuk Windows PS (nama ini juga boleh, karena itu juga tidak digunakan di repo apt dan yum ).

Windows PS

_Windows_ PS dapat mendefinisikan symlink - masing-masing di $env:SystemRoot\System32\PowerShell\v1.0 (64-bit) dan $env:SystemRoot\SysWOW64\PowerShell\v1.0 (32-bit) sebagai berikut:

Set-Location $PSHOME
cmd /c mklink wpsh.exe powershell.exe

Berdasarkan $PSHOME berada di $PATH , shell apapun, termasuk PS Core dan Windows PS itu sendiri, kemudian dapat memanggil Window PS sebagai wpsh .

PS Core

File singkatan dengan sendirinya dapat ditempatkan di direktori yang ada di PATH secara default, yang akan memungkinkan pemanggilan bahkan tanpa $PSHOME PS Core itu sendiri berada di PATH.

Pertimbangan 64-bit-vs.-32-bit tidak berlaku (PS Core hanya 64-bit), jadi $env:SystemRoot (biasanya, C:\Windows ) dapat dipilih.

Sayangnya, penggunaan _symbolic links_ setidaknya saat ini _not_ merupakan pilihan, karena PowerShell Core menolak untuk dijalankan ketika dipanggil melalui symlink yang memiliki nama berbeda:

Dari sesi PS _elevated_:

Set-Location $env:SystemRoot   # typically, C:\Windows
cmd /c mklink psh.exe "C:\Program Files\PowerShell\6.0.0-beta.7\powershell.exe"

Memanggil psh.exe gagal sebagai berikut:

The managed DLL bound to this executable: 'powershell.dll', did not match own name 'psh.dll'.
A fatal error was encountered. This executable was not bound to load a managed DLL.

Jika ada yang tahu cara mengatasi ini, beri tahu kami.

(Anehnya, jika Anda mendefinisikan symlink _tanpa ekstensi_ - psh alih-alih psh.exe - pada prinsipnya pemanggilan berhasil, tetapi tidak ada parameter yang dilewatkan.)

Solusinya adalah dengan menggunakan file batch rintisan (sekali lagi, jalankan dari sesi _elevated_ PowerShell):

Set-Location $env:SystemRoot   # typically, C:\Windows
'@"%ProgramW6432%\PowerShell\6.0.0-beta.7\powershell.exe" %*' | Set-Content -Encoding ASCII psh.cmd

Shell panggilan apa pun, termasuk Windows PowerShell dan PS Core itu sendiri, kemudian dapat menggunakan psh sebagai singkatan untuk menjalankan PS Core.

@ mklement0 Saya memikirkan hal yang sama dalam hal menggunakan symlink di Linux / macOS dan file batch untuk Windows (dan saya tidak akan melakukan apa pun untuk Windows PowerShell karena itu hanya akan tetap sebagai powershell ).

Tampaknya hal yang paling jelas adalah bahwa powershell adalah yang utama dan psh adalah tautannya, tetapi saya berpikir mungkin kita harus membalikkannya sehingga psh adalah nama dari exe dan powershell adalah tautannya. Alasannya adalah bahwa dengan audiens baru di non-Windows dan untuk membedakan dari Windows PowerShell, tampaknya preferensi adalah orang menggunakan psh untuk merujuk ke PowerShell Core dan powershell hanya disediakan untuk app-compat (mungkin memori otot bagi sebagian orang saat mereka bertransisi). Namun, saya tahu tidak semua orang menyukai ide ini.

Jika kita akan melihat bahwa psh sangat populer, kita dapat menukar powershell dan psh .

Untuk menambahkan alias dapat membantu https://stackoverflow.com/questions/2016722/one-dll-multiple-projects

Tidak suka gagasan psh menjadi exe dan PowerShell diturunkan menjadi tautan. Anda membuang 10 tahun loyalitas audiens untuk potensi kemudahan penggunaan di non-Windows di mana ukuran audiens tidak diketahui dan (setidaknya untuk memulai) berpotensi kecil.

Semakin saya melihat PowerShell v6, semakin terlihat pengguna Windows yang ada diabaikan dalam upaya untuk meyakinkan pengguna non-Windows untuk mengadopsi PowerShell. Di manakah proses ini berakhir?

@RichardSiddaway Saya tidak mendapat kesan bahwa tim PowerShell sama sekali mengabaikan pengguna Windows dan saya terutama pengguna Windows dengan Windows Phone. Saya adalah orang yang meminta ini bukan karena beberapa konsep Linux, tetapi dari tantangan saya sendiri untuk beralih dari cmd ke PowerShell.

Faktanya adalah, Windows PowerShell adalah produk yang matang tetapi tidak dibangun dengan mempertimbangkan lintas platform. Untuk membuat ini berhasil, investasi awal harus lebih tinggi ke lintas platform di awal yang akan menguntungkan kedua dunia. Hal-hal akan merata selama beberapa rilis berikutnya.

Selain alias dan alias parameter, saya tidak melihat banyak hal yang berdampak negatif pada pengguna Windows. Jika ada masalah tertentu yang menjadi perhatian, silakan angkat dalam masalah tersebut. Debat bagus untuk platform dan kami perlu memastikan tidak ada yang istimewa tentang PowerShell yang hilang dalam transisi.

@ SteveL-MSFT dapatkah Anda memberikan alasan lain untuk membuat psh atau pwsh menjadi .exe? Jika ada manfaat yang didapat darinya, saya mungkin lebih cenderung mendukungnya.

Aduh pada file batch. Bagaimana cara membuat symlink berfungsi di Windows? Saya lebih suka memiliki itu daripada lapisan lain melalui cmd.

@ dragonwolf83 Saya akan membayangkan dari waktu ke waktu, orang lebih suka mengetik 3 atau 4 karakter vs 10, jadi meskipun kami akan selalu mendukung mengetik powershell , sepertinya dari perspektif jangka panjang, kita harus mengoptimalkan untuk versi yang lebih pendek

Komentar Anda tentang Windows PowerShell tepat.

@ arbainrambey2 :

Aduh pada file batch. Adakah cara untuk membuat symlink berfungsi di Windows?

Aku mendengarmu. Sayangnya, seruan minta tolong saya hanya mendapat sedikit perhatian sejauh ini.

powershell.exe adalah 78k, apakah sangat buruk memiliki 78k lain sebagai psh.exe ...

Memiliki 2 file executable duplikat mungkin merupakan solusi yang mudah tetapi juga dapat menyebabkan kebingungan karena saya dapat membayangkan bahwa pengguna akan mulai merenungkan apakah ada perbedaan antara 2. Jika saya baru mengenal PowerShell dan melihat 2 contoh berbeda (misalnya pada SO) itu tunjukkan cara memanggil / membuka PowerShell maka saya akan segera mulai bertanya-tanya contoh mana yang harus saya pilih karena saya akan berasumsi bahwa ada perbedaan ...

IMO ini konyol. cmd.exe sebagian besar tersembunyi di Windows 10 1703, jadi Anda jarang meluncurkan PowerShell.exe dari shell lawas.

Bukan penggemar berat ini - seberapa sering Anda mengetik powershell sehingga menjadi masalah? (Juga, masalah total bikeshed;)) Di Windows 10 dan Server 2016, atur "Ganti command prompt dengan Windows PowerShell saat saya mengklik kanan menu mulai atau tekan Win + X" dan sesingkat Win + x, i atau di Linux , tambahkan alias ke shell yang ada dengan nama yang Anda inginkan.

Yang mengatakan, bagaimana dengan:

  • ps1 - setelah ekstensi file di Windows, singkat, mudah diketik, mudah diingat
  • psps - pendek dan dapat diketik, tetapi membiarkan dirinya terbuka untuk bahasa gaul 'khas M $ mengasapi'
  • ips - seolah-olah untuk Invoke-PowerShell, tampaknya tidak menjadi paket di RedHat atau repo Ubuntu dan yum provides "*/ips" tidak menunjukkan binari untuk bentrok dalam pemeriksaan cepat

Izinkan saya bertanya seperti ini: apakah ada yang punya alasan kuat untuk tidak memilih pwsh?

Itu jelek dan tidak dapat diucapkan, membutuhkan lebih banyak suku kata untuk diucapkan daripada 'powershell' itu sendiri, tidak terlalu mudah untuk diketik, dan sepertinya itu berasal dari pwnd / pwnt yang berbicara di internet.

Jika kita akan segera memiliki PowerShell sebagai shell default di Windows, nama file (panjang) menjadi tidak penting.

PowerShell Core adalah proyek portabel - kami juga harus memikirkan Unix.

@ PowerShell / powershell-committee membahas hal ini dan di mana kami mendarat adalah memiliki biner PSCore6 yang disebut hanya pwsh tanpa pintasan / alias tambahan untuk powershell . Manfaatnya adalah membuatnya eksplisit tanpa ambiguitas pada Windows apakah Anda menggunakan Windows PowerShell atau PowerShell Core. Di non-Windows, ini lebih pendek untuk diketik dan lebih konsisten dengan penamaan shell lainnya. Berdasarkan umpan balik pelanggan, kami selalu dapat menambahkan powershell tautan / pintasan / alias di masa mendatang.

Pilihan saya adalah psh.exe.

@jandrusk PR sudah digabungkan kemarin, jadi akan menjadi pwsh.exe. Jeffrey sudah men-tweet tentang ini di sini .

Hidup PassWord / Per-Week / PoliceWoman SHell baru!

Pilihan saya adalah membiarkannya.

Jadi bagaimana kita mengucapkan pwsh?

pwsh
p.wush
p.woosh
puh.wush

Semoga ada yang lebih baik dari itu

@jonathanmedd Saya telah menggunakan pwish seperti wish dengan p .

Mengingat bahwa _pwsh_ adalah akronim rekursif (mirip dengan _GNU_) - Tolong, Mengapa pwSH? - Saya sarankan "pweesh", seperti kelinci lucu dengan cadel berkata "tolong".

Bercanda samping:

  • Meskipun saya pribadi berpikir penyelesaian pwsh tidak menguntungkan, saya berasumsi bahwa kita akan segera terbiasa dan tidak akan memikirkannya lagi.

  • Mengenai pelafalan: Saya pribadi tidak merasa perlu, mengingat nama lengkapnya cukup pendek, dan bagi siapa pun yang tinggal di dunia PowerShell, pemetaannya akan terlihat jelas. (Contoh dari dunia Unix: zsh rupanya diucapkan zee shell atau zed shell , bukan sebagai suku kata tunggal).

P-Dub Shell ?

P Double U Shell atau P Double U S H menyakitkan untuk dikatakan. Lebih banyak suku kata dari PowerShell tetapi Anda mungkin ingin membedakan PowerShell dari pwsh . Sama seperti bash dibedakan dari Bourne-Again Shell .

Anda mungkin ingin membedakan PowerShell dari pwsh

Dalam hal nama lengkap resmi, _PowerShell Core_ vs. _Windows PowerShell_ - _PowerShell_ dengan sendirinya dapat merujuk ke edisi apa pun.
Jika tidak jelas dari konteksnya, menambahkan kualifikasi yang sesuai akan membuat ambigu - dan mungkin tidak akan sering dibutuhkan (misalnya, dalam konteks Unix murni).

Jangka panjang, mengingat PowerShell Core adalah edisi yang berjalan di platform "semua", saya tidak akan terkejut jika _PowerShell_ menjadi singkatan umum informal untuk _PowerShell Core_ ("default" PowerShell), dengan kualifikasi - _Windows_ - hanya digunakan untuk merujuk ke edisi Windows.

Sebagai tambahan:

Sama seperti bash yang dibedakan dari Bourne-Again Shell.

bash _is_ _Bourne-Again SHell_ - ini kontras dengan pendahulunya, _Bourne SHell_ ( sh ,
sebelum POSIX menstandarkan bahasa).

@ mklement0 Saya berbicara tentang membedakan pwsh biner dari PowerShell bahasa / shell. Tidak membedakan implementasi / platform PowerShell yang berbeda. Sama seperti bash digunakan untuk membedakan biner dari Bourn-Again SHell . Mereka dapat dipertukarkan, ya, tetapi ketika Anda perlu membedakan 2, Anda memerlukan cara yang jelas untuk mengucapkan pwsh .

push: senyum:

Jadi mungkin:

p shell atau p w shell

@tokopedia

Ah, begitu, terima kasih sudah mengklarifikasi.

Jika Anda ingin menyampaikan nama _exact_ dari biner, tidak ada pengucapan singkat dari _spelling out_ nama yang akan membantu Anda (itu hanya akan bekerja dengan sesuatu seperti posh ).

Jadi, mengacu pada _PowerShell binary / executable_ harus bekerja untuk semua orang yang sudah tahu, dan untuk orang lain Anda tetap harus mengejanya.

Jika Anda ingin menyampaikan nama persis dari biner tersebut, tidak ada pengucapan singkat dari mengeja nama yang akan membantu Anda.

Kami harus setuju untuk tidak setuju dengan yang itu 😃.

Saya memahami _desire_ Anda agar itu berfungsi - seperti halnya dengan "bash" dan "posh", misalnya - tetapi seperti yang dibuktikan oleh perjuangan Anda di atas, itu tidak berhasil dengan "pwsh" - yang, wajar untuk diasumsikan, kami terjebak dengan sekarang.

itu tidak bekerja dengan "pwsh"

yah, tidak dengan sikap seperti itu! 😉 Saya telah menyebutnya pwish dan mungkin akan terus melakukannya. Tapi saya hanya membuat dialog untuk melihat apakah orang lain menemukan sesuatu yang lain. push bagus mengingat pengucapan w dalam beberapa bahasa. pwsh tidak sepenuhnya tidak dapat ditebus, IMO. mungkin semua orang akan puas dengan p w s h . tapi masih terlalu dini untuk mengatakan "kita sudah selesai di sini" dan mempertimbangkan masalah yang sudah diputuskan, IMO.

:)

Kamu benar.

Saya rasa saya terlalu fokus pada aspek penyampaian _exact spelling_ kepada seseorang yang belum terbiasa dengan PowerShell daripada nama pendek yang dibuat _oleh konvensi_ untuk mereka yang sudah tahu (yang sudah tahu cara memetakan nama pendek itu menjadi pwsh ).

Bagaimana dengan MSPosh. Lebih pendek dari PowerShell.exe dan mengikuti standar, sekaligus berfungsi ganda sebagai nama yang menyenangkan untuk The PowerShell Hero ?

@ 1RedOne pahlawan / avatar PowerShell akan selalu menjadi PoSH-Chan di ❤️ saya

Sepertinya tim PWSH tergesa-gesa mengganti namanya. :-)

Saya memilih pscmd.exe

saat mengetik cmd di windows, seharusnya benar-benar muncul! dan itu sebenarnya menggantikan cmd ...

jika ini adalah masalah memori otot, mari kita perbaiki masalah itu ..

jika itu hanya untuk bersenang-senang untuk menemukan nama baru yang keren, maka itu harus pscore.exe, karena memang begitu.

hanya 2 sen saya.

pwsh , shell Wbject-Wriented wwrld yang pertama. Saya lwwking fwrward tw cmdlet baru melanjutkan pola ini:

Get-Cwntent servers.txt | FwrEach-Wbject { 
    Invwke-Cwmmand -CwmputerName $_ -Scriptblwck { .. }
}

;)

-

Ref pengucapan, bagaimana dengan kata " powsh " seperti "pouch" atau "couch" dengan soft "s". (Pikirkan impresionis Sean Connery mengatakan 'kantong').

The managed DLL bound to this executable: 'pwsh.dll', did not match own name 'powershell.dll'.
A fatal error was encountered. This executable was not bound to load a managed DLL.

Saya menduga pesan kesalahan ini terkait dengan masalah ini. Bagaimana cara mengatasinya?

Sejauh masalah nama sebenarnya, saya memilih pwsh, karena Bash adalah Bourne Again SHell.

Saya memilih PWSH. Dan saya akan mengucapkannya sebagai dorongan.
Saya telah melihat banyak komunitas menggunakan barang mewah, jadi itu akan menjadi pilihan kedua saya, meskipun saya pikir MS mungkin mencoba untuk tidak menyebutnya mewah.

Saya memilih pwr !

@DaleMitchell bagaimana Anda mendapatkan kesalahan itu? Jika Anda membuatnya sendiri, apakah Anda memuat ulang build.psm1?

Saya telah melihat banyak komunitas yang menggunakan barang mewah

https://github.com/dahlbyk/posh-git misalnya.

pwsh diucapkan posh . @SaschaNaz POSH

Apakah saya melewatkan suara @ PowerShell / PowerShell-committee dalam hal pengucapannya? :)

Saya pikir mungkin kita bisa mengucapkannya Microsoft Next Generation Command Line Interface Shell Experience 2017 , atau mungkin hanya, Anda tahu, powershell .

Tidak akan menggunakannya hingga Microsoft Next Generation Command Line Interface Shell Experience 2017 Paket Layanan 2 dirilis ...

POSH sudah ada sebagai shell sayangnya

Ya, itu akan SANGAT membingungkan ketika pengguna ingin mewah, mencoba sudo apt install posh dan kemudian mendapatkan shell yang sama sekali berbeda.

BTW, poh-sh atau pah-sh ? Pasti yang terakhir?

Nama paketnya masih PowerShell, tidak ada perubahan disana:

sudo apt install powershell

Posting debat cepat (beropini):

  • Adapun nama _file dari binary_: keputusan telah dibuat dan dipublikasikan: pwsh itu.

  • Adapun _proncement_:

    • Tidak ada yang bisa menyampaikan ejaan persis dari biner ke _uninitiated_ - tidak ada pilihan selain mengejanya.

    • Untuk _initiated_, "PowerShell" bisa dibilang semua yang dibutuhkan, karena biasanya akan jelas dari konteks apakah seseorang merujuk ke _product_ atau nama _file dari binary_ (perhatian @markekraus ); jika yang terakhir, yang diinisiasi akan secara otomatis menerjemahkan itu menjadi pwsh di kepala mereka.
      Tambahkan "Core" dan "Windows" agar tidak membingungkan, jika perlu.

    • Tak perlu dikatakan, pencarian penuh gairah untuk moniker satu suku kata informal definitif akan terus berlanjut ...
      Karena tindakan pemetaan mental ke pwsh diperlukan dalam acara apa pun, yang didirikan secara informal seperti "Posh" mungkin juga akan terus digunakan.

Kembali ke masa lalu ketika kami menggunakan MKS Toolkit untuk dukungan skrip lintas platform, kami menggunakan ksh.exe tetapi kami selalu menyebutnya KornShell . Jadi meskipun binernya adalah pwsh , saya akan menyebutnya PowerShell.

Saya pikir keseluruhan masalah "bagaimana Anda mengucapkan nama biner" ini dapat dihindari jika nama binernya adalah pwrsh tetapi kapal itu telah berlayar.

Kembali ke "masa lalu" (apakah 15 tahun lalu dihitung?) Tim saya menyebut biner "kish", dan "KornShell" adalah untuk diskusi umum tentang shell.

Contoh:

"Ketik ooser bin kish lalu tekan enter. Sekarang Anda berada di KornShell"

apakah 15 tahun yang lalu dihitung?

Ini agak relatif terhadap orang yang saya kira. Pengalaman saya dengan KornShell dimulai 24 tahun yang lalu. 15 tahun yang lalu putri saya masih balita dan itu tidak terlihat lama. Astaga - waktu berlalu.

tim saya menyebut biner "kish"

Tidak bisa dibilang aku pernah mendengarnya dilafalkan seperti itu. :-)

Tidak bisa dibilang aku pernah mendengarnya dilafalkan seperti itu. :-)

Ya. di luar tim itu selalu "ksh" atau "KornShell". Tapi itulah intinya: membahas bagaimana orang akan mengucapkan huruf "pwsh" (tidak ada "PowerShell") dan melihat apakah ada konsensus. Ini bukan diskusi yang sepenuhnya serius dan tidak ada yang akan menjadi pengucapan resmi karena kata yang tidak dapat diucapkan (tidak ada rasa tidak hormat yang ditujukan kepada tim- push ). tetapi ada untungnya bahwa mungkin pesaing populer akan menang dan kita akan mulai mendengarnya dalam presentasi.

Sebelum bekerja di Microsoft, saya adalah orang Unix dan selalu dipanggil ksh Korn Shell dan csh C Shell. Saya tidak ingat ada orang di masa itu yang mencoba mengucapkannya sebagai kata-kata: P.

Bisakah seseorang secara singkat menjelaskan mengapa perubahan besar seperti ini dilakukan? Saya keluar dari lingkaran (jelas!), Dan sedang mengobrol dengan @powerschill , dan kami hanya agak terkejut, mengingat bahwa symlink adalah suatu hal.

Apakah penyegar saya membaca tentang proses berkontribusi barusan. Saya pikir ini akan membutuhkan RFC pada awalnya, tetapi saya dapat melihat bagaimana ini mungkin tidak berlaku. Selanjutnya, saya melihat kebijakan tentang perubahan yang melanggar (https://github.com/PowerShell/PowerShell/blob/master/docs/dev-process/breaking-change-contract.md). Dapatkah Anda berkomentar di ember mana perubahan ini jatuh, dan seterusnya?

Tidak mencoba mengobarkan sesuatu yang jelas diselesaikan, saya hanya ingin dapat berkomunikasi secara efektif dengan orang lain yang tertarik yang tidak membaca spesifikasi dan masalah. Terima kasih!

2c saya. Ini adalah perubahan besar yang menghancurkan. Terlalu banyak file batch yang ada di skenario produksi keluar sudah menggunakan PowerShell.exe untuk memulai skrip PowerShell. Saya tidak menentang memberikan perintah pendek tambahan untuk meluncurkan executable yang sama tetapi menghapus 'PowerShell' akan menyebabkan malapetaka besar. Berikan cara untuk menggunakan keduanya (alias atau apa pun)

@RudolfHenning Tidak seperti versi Windows PowerShell sebelumnya, PowerShell Core akan beroperasi berdampingan dengan versi lain dari dirinya sendiri dan versi Windows PowerShell yang lebih lama. Harus ada cara untuk memanggil inti Windows PowerShell dan PowerShell dari baris perintah dan dari skrip batch tanpa harus memanggil jalur lengkap EXE yang dimaksud atau tanpa mengambil risiko urutan jalur yang mengakibatkan powershell.exe memanggil yang salah Versi: kapan.

Bahkan setelah PowerShell Core 6.0 dirilis, akan tetap ada kebutuhan untuk menggunakan Windows PowerShell (5.1 dan yang lebih rendah) untuk banyak tugas yang berpusat pada Windows karena banyak modul dan skrip resmi dan komunitas memerlukan akses ke objek Full CLR yang tidak tersedia di Core.

Selain itu, siapa pun yang mem-porting skrip mereka dari versi sebelumnya ke 6.0 kemungkinan perlu melakukan penyesuaian karena ada cukup banyak perubahan yang merusak antara 5.1 dan 6.0. Karena kode tetap perlu disentuh, kumpulan dapat dialihkan ke pwsh.exe dari powershell.exe . Jika mereka tidak mem-porting PowerShell Core, maka tidak ada yang akan rusak dan skrip akan terus berjalan dengan powershell.exe menggunakan Windows PowerShell.

Terima kasih untuk penjelasannya.
Karena saya menggunakan Windows dan beberapa OS Linux, kompatibilitas skrip saya terkadang menjadi perhatian - ya, saya tahu pustaka PowerShell di Linux masih Beta. Saya telah menginvestasikan cukup banyak waktu dan upaya dalam membuat skrip untuk mesin Linux saya.
Bagaimanapun, terus lakukan pekerjaan yang baik!

Pelari TeamCity Powershell mengasumsikan bahwa eksekusi disebut powershell . Karena tidak ada Powershell 5 di Linux yang menyebabkan masalah kompatibilitas, paket Linux seharusnya terus membuat symlink powershell . Ini adalah kerusakan yang tidak perlu.

Apa, apakah saya tiba pada bulan April? Apakah kita akan menghapus vokal dari commandlet PowerShell selanjutnya? Ini pasti candaan.

skrip lama (buruh pelabuhan) yang menggunakan "powershell -command xxxx" tidak berfungsi lagi dengan rilis beta-9 baru ....

menunggu badai

Ada banyak alasan untuk mengubah perubahan pada tempat "terpenting" atau titik masuk, tetapi mempersingkat nama perintah sebesar 6 byte dan membuatnya kurang mudah dibaca bukanlah salah satunya ....
seberapa sering di masa lalu kita memutuskan untuk menggunakan nama yang lebih baik / lebih panjang di dalam kode kita karena membaca bisa / harus lebih mudah daripada menulis ....

cust 2cent saya
salam
Werner

Saya mencoba untuk memahami kemurkaan dan kegagalan.

Orang-orang mengeluh bahwa nama baru itu merusak banyak hal, tetapi, PowerShell Core masih dalam versi beta. IMO, jika seseorang menggunakan teknologi beta dalam kode produksi, mereka mengundang bencana (Saya menggunakan bahasa yang sopan di sini). Sifat rilis alfa dan beta diisi dengan perubahan yang mengganggu. Tidak ada ilusi bahwa ini bukan beta. beta dimasukkan ke dalam nama versi: 6.0.0-beta.9 .

Perubahan nama ini tidak berpengaruh pada Windows PowerShell. Seharusnya tidak merusak apa pun yang sedang Anda lakukan di Windows. Jika Anda melakukan sesuatu di Linux, maka Anda harus mengakui fakta bahwa Anda menggunakan versi beta, alih-alih menyalahkan versi beta sebagai versi beta. Pertimbangkan untuk menggunakan sesuatu yang lain hingga rilis stabil adalah RTM jika Anda tidak dapat menangani perubahan yang melanggar antara rilis beta.

Saya mengerti bahwa orang tidak menyukai nama itu. Anda tidak selalu bisa mendapatkan apa yang Anda inginkan. Saya pribadi membenci PowerShell.exe karena panjang dan canggung untuk mengetik. pwsh setidaknya lebih sedikit karakter untuk saya buat kacau. Jika Anda melihat utas diskusi, Anda dapat melihat bahwa beberapa opsi dibahas beberapa di antaranya jauh lebih buruk (IMO) daripada pwsh .

Orang-orang salah paham ini sebagai upaya canggung untuk berbaur dengan anak-anak Linux yang keren, ketika salah satu motivator utama untuk nama biner baru terkait dengan Windows. Ya, nama linux-y telah dipilih, tapi coba tebak? PowerShell sekarang juga menjadi warga negara * nix. Saya pikir sudah waktunya orang terbiasa dengan fakta itu. Salah satu tujuan Core adalah portabilitas lintas platform, Jadi ya, keputusan dapat dan akan dibuat dengan mempertimbangkan lebih dari sekadar Windows.

jadi itulah nilai 2 sen saya.

Salah satu tujuan Core adalah portabilitas lintas platform

Salah satu bagian dari portabilitas lintas platform adalah bahwa perintah yang sama harus bekerja pada kedua platform jika mereka melakukan hal yang sama. Sebelum perubahan ini, saya dapat menjalankan powershell apa pun OS yang saya gunakan dan mendapatkan hal yang benar. Sekarang saya tidak bisa lagi melakukan itu.

Membuat perangkat lunak yang mudah digunakan berarti merawat sejuta hal kecil dengan baik. Menggunakan nama yang aneh dan tidak intuitif bisa membantahnya.

Saya dapat menjalankan powershell apa pun OS yang saya gunakan dan mendapatkan hal yang benar. Sekarang saya tidak bisa lagi melakukan itu.

Tidak akurat. Anda dapat menjalankan powershell di windows dan mendapatkan Windows PowerShell kemudian menjalankan powersehll di linux dan mendapatkan PowerShell Core. Sekarang Anda dapat menjalankan pwsh di windows atau linux dan mendapatkan PowerShell Core. Jadi SEKARANG kita berada dalam keadaan yang Anda inginkan. dimana seperti sebelumnya kami berada dalam kondisi tidak konsisten.

Menggunakan nama yang aneh dan tidak intuitif bisa membantahnya.

jelas itu tidak disukai secara universal, tapi ... alternatif apa yang Anda sarankan? Saya melihat semua orang mengeluh tentang nama tetapi tidak ada alternatif untuk masalah yang mendasari perubahan nama ini alamat. Seperti yang saya katakan, "Anda tidak selalu bisa mendapatkan apa yang Anda inginkan"

Tidak peduli nama apa yang dipilih, orang tidak akan bahagia.

@bayu_joo

  • kami tahu itu adalah beta - perubahan yang melanggar tidak masalah!
  • Saya penggemar berat membuat PS yang lebih baik di * nix karena ini membantu saya mentransfer pengetahuan (PS) saya dari Windows ke * nix

Umpan balik saya adalah tentang kegunaan dan kekhawatiran tentang badai yang memaksa beberapa nama ulang lagi dan diskusi tanpa akhir.

Anda dapat menjalankan PowerShell di Windows dan mendapatkan Windows PowerShell lalu menjalankan PowerShell di linux dan mendapatkan PowerShell Core. Sekarang Anda dapat menjalankan pwsh di windows atau linux dan mendapatkan PowerShell Core. Jadi SEKARANG kita berada dalam keadaan yang Anda inginkan. dimana seperti sebelumnya kami berada dalam kondisi tidak konsisten.

Memisahkan Windows dan Core adalah alasan yang LEBIH BAIK untuk mengganti nama kemudian "Buat nama yang lebih pendek"!

Saya menyarankan untuk melakukan komunikasi yang lebih jelas tentang itu (Judul Masalah, Catatan Rilis, dll)
Saya telah membaca 2-3 halaman pertama dari masalah ini dan pembahasannya hanya tentang panjangnya ....

umpan balik lainnya:
Dalam beberapa minggu terakhir saya telah melakukan banyak pengkodean dengan PS-Core di Docker dan * nix
Saya suka tapi butuh polesan.
Ide / Saran:
jika namanya diganti dari Powershell menjadi pwsh, kenapa tidak merubah Version dari 6.0 menjadi 1.0 (pembahasan yang sama seperti merubah dari ".Net 5.0" menjadi "dotnet core 1.0
Pada dasarnya CORE lebih seperti versi 1.0 ke versi 6, khususnya di * nix !!

salam
Werner

@WernerMairl Ada diskusi terbuka tentang penggunaan 1.0, bukan 6.0.0 # 5165. Silakan buka utas itu dan baca dan beri komentar.

Selain itu, karena Anda telah menggunakannya dan mengalami hal-hal yang menurut Anda perlu dipoles, periksa masalah terbuka untuk melihat apakah masalah tersebut mengatasi masalah yang Anda hadapi. Jika ada masalah terbuka, pilih atau komentari dan jika tidak silakan buka masalah baru sehingga bisa diperbaiki. Beberapa dari kami anggota komunitas secara aktif terlibat dalam memperbaiki masalah dengan prioritas lebih rendah dan Tim Microsoft telah melakukan pekerjaan luar biasa dengan mengerjakan masalah dengan prioritas lebih tinggi dan lebih sulit. Juga, tidak ada kata terlambat untuk menjadi kontributor sendiri!

Mengenai deskripsi masalah dan komunikasi perubahan, saya setuju bahwa ada ruang untuk perbaikan pada komunikasi perubahan ini dan mengapa itu perlu. Peran orang yang berbeda dalam repo ini bisa sedikit membingungkan, tapi saya bukan bagian dari tim PowerShell, hanya kontributor komunitas dengan (pada dasarnya) hak moderasi forum. Saya tidak dapat berbicara untuk Tim PowerShell, tetapi saya curiga mereka sendiri memahami fakta ini.

Dalam pembelaan mereka, yang satu ini agak sulit untuk dikomunikasikan. Sebagian besar keluhan tampaknya berasal dari kurangnya pemahaman tentang persamaan dan perbedaan antara Windows PowerShell dan PowerShell Core. Untuk mengkomunikasikan perubahan ini secara efektif, mereka juga perlu mengulangi apa yang dijabarkan dalam artikel blog 14 Juli . Yang mana pun, orang masih kesulitan mengarungi persamaan dan perbedaan. Saya pikir itu akan membutuhkan penjelasan yang panjang tentang mengapa perubahan nama dilakukan yang masih banyak yang tidak membaca. Saya menduga obor dan garpu rumput akan datang apa pun yang terjadi.

Tidak akurat. Anda dapat menjalankan PowerShell di Windows dan mendapatkan Windows PowerShell lalu menjalankan PowerShell di linux dan mendapatkan PowerShell Core. Sekarang Anda dapat menjalankan pwsh di windows atau linux dan mendapatkan PowerShell Core. Jadi SEKARANG kita berada dalam keadaan yang Anda inginkan. dimana seperti sebelumnya kami berada dalam kondisi tidak konsisten.

Saya mengerti apa yang Anda maksud tetapi saya membantah bahwa ini bukan yang saya inginkan. Ada asumsi tersembunyi yang tersirat dalam pernyataan saya: Saya berharap PowerShell dan PowerShell Core benar-benar setara selama saya menggunakan fitur umum. Sejauh ini, ini berjalan tanpa masalah di semua kasus penggunaan saya.

@sandersaares Saya percaya pengalaman Anda menjadi salah satu keberuntungan. Itu pasti tidak sesuai dengan pengalaman saya. Juga, saya percaya asumsi itu berbahaya. Ini adalah versi utama dengan banyak perubahan yang terdokumentasi dengan platform dasar yang sama sekali berbeda. Ini tidak akan seperti versi utama PowerShell sebelumnya dengan kompatibilitas mundur hampir 100%.

Saya melihat beberapa orang masih membuat asumsi yang salah bahwa perubahan nama yang dapat dieksekusi terutama untuk menghemat pengetikan. Saya bisa melihat bagaimana orang bisa mendapatkan kesan ini sejak edisi asli yang digunakan untuk PR dimulai dengan judul yang meminta nama yang lebih pendek.

Saya setuju bahwa kita dapat meningkatkan komunikasi kita karena kita seharusnya tidak mengharapkan semua orang membaca semua komentar yang dibuat Komite tentang keputusan. Terutama pada kasus yang kontroversial seperti ini dimana ringkasan putusannya mudah hilang.

Tampaknya juga ada kesalahpahaman mendasar tentang apa itu PowerShell Core 6, terutama dalam kaitannya dengan Windows PowerShell. Windows PowerShell 5.1 masih dan akan menjadi versi PowerShell dalam kotak di Windows. Tim saya juga terus mendukungnya sesuai kebutuhan. Kami sepenuhnya mengharapkan pelanggan untuk terus bergantung pada Windows PowerShell selama mereka membutuhkannya setidaknya 10 tahun ke depan. Saya pikir baru belakangan ini saja unduhan WMF5.1 akhirnya melampaui unduhan WMF4.0.

PowerShell Core 6 adalah evolusi berikutnya dari PowerShell yang tidak hanya lintas platform tetapi juga Open Source. Seperti yang dicatat @markekraus , ini adalah perubahan versi utama yang memungkinkan kami lebih fleksibel dalam menerima perubahan yang melanggar yang tidak akan pernah kami pertimbangkan untuk Windows PowerShell. Juga dicatat bahwa PowerShell Core 6 secara eksplisit dirancang untuk bekerja berdampingan (tidak hanya dengan Windows PowerShell tetapi versi PSCore6 lainnya). Seharusnya tidak ada ambiguitas tentang apa yang Anda dapatkan di Windows saat Anda mengetik powershell . Saya hanya akan mencatat di sini bahwa diskusi 6.0 vs 1.0 sudah terjadi sejak lama sebelum kami go public dan sepertinya tidak akan dibuka kembali.

@ SteveL-MSFT posting blog tentang perubahan nama akan bagus. Ini bisa mencakup driver utama mengapa nama berubah dengan contoh masalah yang jelas di Windows. Ini juga akan baik untuk menutupi mengapa mewah dan psh tidak berhasil juga.

Mungkin mengatur "PowerShell" sebagai alias untuk pwsh selama unpacking + install. Ini baru saja merusak bangunan yang saya kerjakan selama beberapa hari sampai saya melacak masalah ini.

Edit: di linux

@markekraus memiliki posting blog yang bagus yang menangkap apa dan mengapa:

https://get-powershellblog.blogspot.sg/2017/10/why-pwsh-was-chosen-for-powershell-core.html

Hari ini saya melihat penggunaan pertama pwsh pada SO di sini meskipun saya ragu orang tersebut tahu tentang utas ini ...

Bisakah kita mendapatkan keputusan resmi tentang pengucapan pwsh ? Spesifikasi PNG menyertakan pelafalan dalam Bagian 1. Mungkin juga menyediakan satu untuk PowerShell; tidak ingin situasi SCSI "scuzzy" / "sexy" lainnya.

Sepertinya "poosh" bagi saya.

@apjanke pengucapan yang diterima secara umum dari pwsh adalah posh

Bekerja untuk saya. Terima kasih atas konfirmasi resminya!

Adapun pengucapan alternatif: [1]

  • _Pish Posh! _

  • _Poppyposh! _

  • _The Shell Sebelumnya Dikenal sebagai PowerShell_ (_TSFKAP_ dalam bahasa Georgia )

  • _ Shell That Dare Not Speak Its Name (Karena Nama Executable-nya Unpronounceable) _ (disukai oleh pembicara Welsh ).


[1] [Parodi.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat