Das Muskelgedächtnis vom Umschalten von cmd auf Powershell ist ein Schmerz. Es wird durch die Tatsache verschlimmert, dass es viel länger ist als das Eingeben von cmd oder bash. Selbst wenn die Windows-Suche in Start ausgeführt wird, wird die ISE häufig abgerufen, wenn Sie sie bereits eine Weile verwendet haben. Daher ist häufig die Eingabe des vollständigen Namens erforderlich.
Ein besserer Name wäre posh.exe oder eine andere gültige Erweiterung. Es ist so lang wie Bash und nur ein Zeichen länger als cmd. Posh war die in der Community akzeptierte Abkürzung für alles, was mit PowerShell zu tun hat, daher gibt es dort eine gewisse Vertrautheit. Ich glaube nicht, dass es Konflikte mit anderen Apps gibt, die dies verursachen würde, aber das würde etwas Graben erfordern.
Dies könnte auf zwei Arten erreicht werden.
Ersteres behält die Abwärtskompatibilität bei und ermöglicht dem Benutzer die Wahl zwischen posh oder Powershell.exe. Bestehende Skripte sind nicht betroffen.
Letzteres könnte dazu beitragen, Themen wie # 4199 und anderen POSIX-Vorschlägen für den Start der Shell mehr Freiheit zu geben. Es handelt sich jedoch um eine bahnbrechende Änderung, die auf die Auswirkungen und die Auswirkungen auf das Branding überprüft werden müsste.
Ich denke, eine offizielle, elegante Verknüpfung ist die beste Option mit minimaler Auswirkung. In einer neuen Dokumentation wird vorzugsweise die Verwendung von PowerShell bevorzugt.
Ich hätte auch gerne einen kurzen Alias, aber aus diesem Grund haben wir uns beim ersten Ausgehen nicht für posh
(wir haben ausführlich darüber gesprochen). Scheint auch immer noch ein aktuelles Paket zu sein.
Offen für andere Vorschläge, aber die meisten offensichtlichen wurden angenommen. Nach dem einzigen Wget / Curl-Alias möchte ich wirklich vermeiden, mit anderen Paketen da draußen zusammenzustoßen, auch wenn sie weniger häufig sind.
Ich bin nicht zu verrückt nach dieser ganzen Idee, aber wie wäre es mit pwsh
?
Ich war noch nie scharf auf Posh als Verkürzung von Powershell. pwsh scheint besser zu sein, aber eine schnelle Suche im Internet wirft einige mögliche Probleme auf. wenn wir das machen wollen, würde ich so kurz wie möglich vorschlagen, also was ist mit nur ps?
OK - vergiss das - ich habe gerade festgestellt, dass ps ein Alias für get-process ist. das wäre zu verwirrend
Ich werde gerade stark deja vu. 😉
Ich schätze die Lesbarkeit von PowerShell (wenn keine Aliase verwendet werden), sodass das Ausführen von powershell
für mich gut funktioniert.
ps
ist auch unter Linux ein vorhandener Befehl.
Einige andere Ideen sind: pscmd
, psc
, monad
, psh
, pshell
Es gibt definitiv abnehmende Renditen bei diesen Namen, ob sie wirklich etwas sparen oder nur unnötige Verwirrung stiften, wenn sie überhaupt verfügbar sind.
CoreSh
, pcs
, psc
😄 S #, P #
@ PowerShell / Powershell-Komitee hat dies besprochen und ist offen für einen kürzeren Symlink-Namen, aber wir können nicht auf jemanden hocken, der bereits existiert. prsh
scheint in Ordnung zu sein.
Warte warte! Ich habe es verstanden: ^sh
- oder war das **sh
? (jk).
prsh
scheint vernünftig zu sein - einfacher zu tippen als pwsh
, obwohl pwrsh
- obwohl es 1 Zeichen ist. länger - ist auch eine Überlegung wert, da "pwr" eine bekannte Abkürzung für "power" ist.
Eine andere, möglicherweise ergänzende Option: Geben Sie eine automatische Variable an, deren Wert unveränderlich den gleichen Pfad der Binärdatei widerspiegelt, mit der die aktuelle Sitzung gestartet wurde.
bash
hat $BASH
dafür.
Der Vorteil dieses Ansatzes besteht darin, dass er unempfindlich gegenüber Variationen / Manipulationen von $env:PATH
.
Wir haben bereits $PSHOME
- wohl ist so etwas wie $PS
keine allzu große Strecke.
Dies bezieht sich jedoch auf die Diskussion, den globalen Namespace nicht mit automatischen Variablen zu verschmutzen - siehe # 4216.
.Net Core, CoreFX, CoreCLR, PowerShell Core - wir könnten "Core" als Basis betrachten.
pscore
scheint mir in Ordnung zu sein, auch wenn es nicht mit sh
endet, obwohl andere Ausschussmitglieder ein Veto eingelegt haben
pscore
oder coreps
- LGTM.
Wir können uns an monad
und msh
(oben erwähnt) erinnern.
Ich mag pwrsh
am besten bisher. pscore
ist auch nicht schlecht, obwohl es bei 6 Zeichen etwas länger wird. Vier oder weniger Zeichen sind wahrscheinlich ideal, aber ich könnte mit den 5 Zeichen leben, die für pwrsh
erforderlich sind.
Mein Anliegen bei der Aufnahme des Wortes "Kern" ist, dass es keine nützlichen Informationen auf Unix-Plattformen enthält, von denen es keine andere Edition gibt, von der es unterschieden werden muss.
@rkeithhill wie wäre es mit pscx
, ha! PowerShell Core-Erfahrung. Das ließ mich jedoch an eine andere PowerShell Core Shell denken, pscsh
.
Ich bin selbst auf einige der gleichen Namen gerissen. Ich mag die Lesbarkeit von pwrsh
und pscore
aber ich stimme zu, dass 5 Zeichen das Limit sind. 5 Zeichen decken das erste Wort power
und darüber hinaus können Sie auch das ganze Wort eingeben. monad
ist ein großartiges Osterei und lesbar, aber verwirrend für diejenigen, die den Hintergrund von PowerShell nicht kennen. Die 4 Zeichen prsh
funktionieren auch gut.
Es wäre gut, eine endgültige Liste der Namen zu erstellen, die verwendet werden können, und eine offizielle Umfrage durchzuführen, wie es das Edge-Team getan hat. Wenn es bevorstehende PS-Community- oder offizielle Veranstaltungen gibt, können Links zur Umfrage ausgegeben werden, um ein größeres Publikum zu erreichen.
@ dragonwolf83 :
pscsh
liegt gefährlich nahe an csh
- eine Assoziation, die wir vermeiden sollten.
Auch hier sehe ich keinen Vorteil darin, das Wort "Kern" aufzunehmen, insbesondere wenn die Möglichkeit besteht, dass die Ausgaben eines Tages vereinheitlicht werden (und auf Windows scheinen die Leute ein gutes Jahrzehnt lang ohne einen kurzen Namen für Windows PowerShell bequem gelebt zu haben). .
Vereinbarte Dunkelheit von monad
.
Meine persönliche Stimme ist für pwsh
, prsh
oder pwrsh
.
PS: Für den Fall, dass _Windows PowerShell_ auch einen kurzen Namen benötigt, könnte das einfache Präfixieren von w
die Lösung sein, obwohl unter meinen Favoriten, die wirklich nur (vernünftigerweise) als wprsh
von der Tastatur rollen, also in In dem Kurznamenszenario mit zwei Ausgaben stimme ich für das Paar prsh
/ wprsh
.
Mein Anliegen bei der Aufnahme des Wortes "Kern" ist, dass es keine nützlichen Informationen auf Unix-Plattformen enthält, von denen es keine andere Edition gibt, von der es unterschieden werden muss.
:-) Sollen wir .Net Core umbenennen?
@iSazonov : Sollten wir Windows PowerShell in "Windows PowerShell .NET Framework [FullCLR]" umbenennen?
Ich würde Abstimmung für psh
- das Projekt , das Sie als Kollision zitieren hat noch keine gesehene Veröffentlichung in 10 Jahren, und war nie in jedem Fall in Paket repos.
@ Jaykul :
psh
? Ich weiß nicht - braucht mehr "Kern", wenn Sie mich fragen.
Scherz beiseite: Hervorragender Punkt über den Status des Projekts und seine Abwesenheit von Paket-Repos.
psh
hat auch meine Stimme (und wpsh
für Windows PowerShell).
(Ausgesprochen 'pshaw' bzw. 'whiplash').
psh
hat auch meine Stimme (undwpsh
für Windows PowerShell).
(Ausgesprochen 'pshaw' bzw. 'whiplash').
Sind Sie sicher, dass wir nicht einfach posh
unter Windows verwenden und sie als pish nobel aussprechen können? 🤡
Pish-tosh! Das ist zu viel Mischmasch für das ganze Mischpocha. 🤡
Ich würde für psh stimmen - das Projekt, das Sie als Kollision zitieren, wurde seit 10 Jahren nicht mehr veröffentlicht und war auf keinen Fall in Paket-Repos.
Kein Copywrite-Problem?
Keine Urheberrechtsprobleme?
Ich hoffe, dass jemand, der wirklich weiß, wiegen wird, aber meine Vermutung ist, dass dies aus zwei Gründen kein Problem sein wird:
psh
ist nicht der offizielle Produktname, sondern nur ein Initialismus (genauer gesagt Akronym), der lediglich eine technische Hilfe darstellt (obwohl er im allgemeinen Sprachgebrauch möglicherweise zu einer gebräuchlichen Abkürzung für den vollständigen Produktnamen wird; es ist möglich zu Markeninitialismen / Akronymen).
Bei Markenproblemen geht es oft um die Wahrscheinlichkeit einer Verwechslung mit vorhandenen Marken, und nach dem, was wir hier gesehen haben, scheint es zumindest im Softwarebereich keine Kollisionen zu geben (ich glaube nicht, dass der Schöpfer des praktisch nicht mehr existierenden psh
repo wird etwas dagegen haben oder hat sogar einen Rechtsstreit).
Für den Fall, dass jemand experimentieren möchte / eine Zwischenlösung benötigt:
Hier ist eine All-Aliase-Lösung, die Aliase sowohl innerhalb als auch außerhalb von PowerShell auf allen unterstützten Plattformen definiert: psh
für PS Core und wpsh
für Windows PowerShell.
cmd.exe
unter Windows, für bash
unter 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"
}
}
$PROFILE
, um dieselben Aliase in PowerShell zu definieren - funktioniert sowohl in PS Core als auch in 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"
}
Was ist mit Paua
? Dies ist ein Hinweis auf die wunderschöne Paua-Muschel (eine Muschel aus Neuseeland). Ansonsten finde ich psh
auch gut.
Sie verkaufen Muscheln von der (neuseeländischen) Küste? (Nur ein Scherz. Schön in der Tat.)
Haftungsausschluss: Folgendes ist nur für [Hobby-] Linguisten von Interesse.
Phonetisch funktioniert paua
nur für nicht-rhotische Dialekte des Englischen (z. B. Großbritannien, Neuseeland, Australien).
Und Bostoner.
@ PowerShell / Powershell-Komitee sollte dies für Beta.8 schließen
Wie wäre es mit Posh6
Wie wäre es mit Posh6
Das Gefühl, dass dies schneller veraltet wäre als das Einfügen einer Versionsnummer in eine Dateierweiterung ...;)
Ja, aber ein Shell-Skript, das es startet, weiß, welche Version es ausführt.
Obwohl ich posh
mag, denke ich, dass das Hauptanliegen darin besteht, dass es ein Linux-Paket namens Posh gibt , um einen weiteren curl
Vorfall zu vermeiden. Ich denke, die nächstbeste Option ist pwsh
Ich mag pwsh
. Wäre schön gewesen vor 10 Jahren zu haben. Ich vermisse msh
.
Ich stimme für psh
.
gnp / psh wurde seit fast 5 Jahren nicht mehr verpflichtet. Es kann genauso gut Abbruchware sein.
Ich hasse es, es zu sagen, aber dies ist eines der Dinge, bei denen es möglicherweise zu schwierig ist, einen starken Konsens zu erzielen. : \
An diesem Punkt bin ich bei pwsh
, um die Dinge zu schließen und jede Art von Kollision zu vermeiden (mehr "Treu und Glauben" als legal).
Lassen Sie es mich so fragen: Hat jemand einen starken Grund, nicht mit pwsh
?
Hätte jemand Bedenken, wenn pwsh
der Name der ausführbaren Datei und powershell
der Symlink / die Verknüpfung ist?
Bevor wir hier Genehmigungen abgeben, sollten wir antworten, was "aktuelle" Version ist und wie wir darauf und auf die Zielversion verweisen werden.
@iSazonov nicht sicher, ob ich Ihre Frage verstehe. Dies hat nichts mit powershell -v N
tun, wenn Sie danach fragen. Dies ermöglicht einfach die Verwendung von pwsh
anstelle von powershell
(obwohl wir die Rechtschreibung von powershell
weiterhin unterstützen würden).
Mein Anliegen sind mehr Symlinks wie Powershell -> Powershell-6.0.0-Beta.7
Wenn wir über Sprache sprechen, mögen wir Aliase in interaktiven Sitzungen, weil sie uns eine komfortable Umgebung bieten, aber die Aliase bereiten Skripten große Kopfschmerzen. Ich sehe dasselbe für den Powershell-Kurznamen - es ist wahrscheinlich gut für den Geschwindigkeitstyp, aber es kann wirklich ein Problem für den Verzeichnisbaum (Symlinks) sein.
Ein anderer Gedanke. Sollten wir über Geschwindigkeitstyp nachdenken? Aus dieser Perspektive sind nicht alle vorgeschlagenen Fälle gut.
Der letzte Gedanke betrifft die Aussprache. Interessanterweise verwenden wir auf Russisch "пош" ("nobel") und Hypokorismus "пошик" ("poshik") seit der Geburt von PowerShell. Ich denke, dass jeder Russe für "nobel" oder "psh" stimmen wird.
Um ganz klar zu sein, pwsh
wäre kein Alias (in PowerShell-Begriffen), es sollte etwas sein, das Sie von cmd.exe oder einer Batch-Datei aufrufen können, wie es physisch existiert. Obwohl mir nicht klar ist, wie wir dies tatsächlich implementieren, wenn wir sowohl einen Kurznamen als auch powershell
ohne zwei ausführbare Dateien unterstützen möchten (obwohl poweshell.exe relativ klein ist ...).
Was posh
und psh
gegenüber pwsh
betrifft, ist das Hauptanliegen bei posh
und psh
dass sie bereits existieren (unabhängig davon, wie prominent sie sind sind). Wir hatten schon früh ein Problem mit unserem Alias curl
da er mit einem vorhandenen nativen Tool in Konflikt stand und (vielleicht sind wir hier übermäßig vorsichtig) wir versuchen, eine ähnliche Situation mit der kurzen Hand zu vermeiden, weshalb wir Ich neige zu pwsh
. Vielleicht gewöhnen sich die Leute daran, wenn ich pwsh
oft genug tippe :)
Andere Seite. Wie lösen wir dasselbe in PowerShell? Wir empfehlen Benutzern Aliase und IntelliSense, um die Eingabe zu starten.
Als wir in einer der Diskussionen hier über Aliase diskutierten, sagten wir, dass alle aktuellen Alias nicht schreibgeschützt sein sollten - wir sollten Benutzern erlauben, Aliase zu entfernen / zu ändern. Mit anderen Worten, Aliase sollten nicht ausschließlich Standard sein. Nur grundlegende Cmdlet-Namen müssen Standard sein. Unter diesem Gesichtspunkt sollten wir keinen "Standard" -Alias für "Powershell" anbieten - jede Community oder Distributive sollte in der Lage sein, den Namen zu wählen, den sie mögen und der ihrem Geist entspricht, und sie könnten auch IntelliSense anbieten.
@ SteveL-MSFT - Ich denke, dass 'pwsh' wahrscheinlich bei den Leuten bleiben wird.
Davon abgesehen haben Sie Leute Curl-Vorfall als Grund erwähnt, nicht 'psh' zu verwenden. Ich finde das problematisch, weil Sie sich (uns) einfach in eine Ecke boxen, indem Sie zu weit Parallelen ziehen!
'curl' ist eines der am häufigsten verwendeten Tools in der Linux-Welt. Es ist ratsam, übermäßig vorsichtig zu sein, um "Curl" -Snafu nicht für "lebende" / "aktive" Software zu wiederholen, aber warum sollte diese Höflichkeit auf Abbruchware ausgedehnt werden?
Lassen Sie uns durch den Curl-Vorfall eine Lektion erteilen, nur nicht die falsche.
Lassen Sie mich zur Unterstützung des @AdilHindistan die Analyse von @Jaykul auf den Punkt wiederholen (der Thread ist lang geworden, es ist schwierig, den Überblick zu behalten):
Ich würde für psh stimmen - das Projekt, das Sie als Kollision zitieren, wurde seit 10 Jahren nicht mehr veröffentlicht und war auf keinen Fall in Paket-Repos.
Mit anderen Worten: Die Tatsache, dass psh
anscheinend nie Teil von (Haupt-) Paket-Repositories war (ich habe nur apt
(Ubuntu, Debian) und yum
(Fedora, RedHat)) - dh war immer ein Nischenprodukt - und dass es nach mehr als 10 Jahren Inaktivität in jeder Hinsicht als aufgegeben betrachtet werden kann, macht es zu einem perfekten Kandidaten.
(Im Gegensatz dazu disqualifiziert die Tatsache, dass posh
immer noch ein verfügbares Paket über apt
, unabhängig von seinem Wartungsstatus, es meiner Meinung nach.)
Ich würde den Punkten zustimmen, dass psh
eine praktikable Option ist und in Betracht gezogen werden sollte
Wie man den Kurznamen als Symlink / Stub implementiert, unter der Annahme, dass der Name der tatsächlichen ausführbaren Datei powershell[.exe]
bleibt:
Nehmen wir an, der Kurzname lautet beispielsweise psh
(nur um zufällig einen der besprochenen Namen auszuwählen).
Das Installationsprogramm muss zusätzlich das Folgende tun:
# Linux
/usr/bin$ sudo ln -s powershell psh
# macOS
/usr/local/bin$ sudo ln -s powershell psh
Mit anderen Worten: Erstellen Sie einen zusätzlichen Symlink mit dem Namen psh
, der einfach auf den vorhandenen Symlink powershell
verweist.
Unter macOS würde dies zu einer Symlink-Kette wie der folgenden führen:
/usr/local/bin/psh@ -> /usr/local/bin/powershell@ -> /usr/local/microsoft/powershell/6.0.0-beta.7/powershell
Jede aufrufende Shell, einschließlich PS Core selbst, könnte daher psh
als kürzere Alternative zu powershell
.
Unter Windows sind die Dinge komplizierter:
psh
für PS Core und wpsh
für Windows PS (dieser Name sollte auch in Ordnung sein, da er auch nicht verwendet wird in den apt
und yum
Repos)._Windows_ PS könnte Symlinks definieren - jeweils einen in $env:SystemRoot\System32\PowerShell\v1.0
(64-Bit) und $env:SystemRoot\SysWOW64\PowerShell\v1.0
(32-Bit) wie folgt:
Set-Location $PSHOME
cmd /c mklink wpsh.exe powershell.exe
Aufgrund von $PSHOME
in $PATH
kann jede Shell, einschließlich PS Core und Windows PS selbst, Window PS als wpsh
aufrufen.
Die Kurzschriftdatei selbst könnte standardmäßig in einem Verzeichnis abgelegt werden, das sich im PATH befindet. Dies würde einen Aufruf ermöglichen, auch ohne dass sich PS Core's $PSHOME
selbst im PATH befindet.
64-Bit- und 32-Bit-Überlegungen gelten nicht (PS Core ist nur 64-Bit), daher können $env:SystemRoot
(normalerweise C:\Windows
) ausgewählt werden.
Leider ist die Verwendung von symbolischen Links zumindest derzeit keine Option, da PowerShell Core die Ausführung verweigert, wenn es über einen Symlink mit einem anderen Namen aufgerufen wird:
Aus einer _elevated_ PS-Sitzung:
Set-Location $env:SystemRoot # typically, C:\Windows
cmd /c mklink psh.exe "C:\Program Files\PowerShell\6.0.0-beta.7\powershell.exe"
Das Aufrufen von psh.exe
schlägt wie folgt fehl:
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.
Wenn jemand einen Weg kennt, lassen Sie es uns wissen.
(Seltsamerweise ist der Aufruf im Prinzip erfolgreich, wenn Sie den Symlink _ ohne Erweiterung_ definieren - psh
anstelle von psh.exe
-, aber es werden keine Parameter übergeben.)
Eine Problemumgehung besteht darin, eine Stub-Batch-Datei zu verwenden (erneut in einer _elevated_ PowerShell-Sitzung ausgeführt):
Set-Location $env:SystemRoot # typically, C:\Windows
'@"%ProgramW6432%\PowerShell\6.0.0-beta.7\powershell.exe" %*' | Set-Content -Encoding ASCII psh.cmd
Jede aufrufende Shell, einschließlich Windows PowerShell und PS Core selbst, kann dann psh
als Abkürzung zum Aufrufen von PS Core verwenden.
@ mklement0 Ich dachte das Gleiche in Bezug auf die Verwendung eines Symlinks unter Linux / MacOS und einer Batch-Datei für Windows (und ich würde nichts für Windows PowerShell tun, da dies nur powershell
bleiben würde).
Es scheint das offensichtlichste zu sein, dass powershell
der primäre und psh
der Link ist, aber ich dachte, wir sollten das vielleicht umdrehen, damit psh
der Name von ist Die Exe und powershell
ist der Link. Der Grund dafür ist, dass bei einer neuen Zielgruppe unter Nicht-Windows und zur Unterscheidung von Windows PowerShell die Benutzer anscheinend psh
, um auf PowerShell Core zu verweisen, und powershell
nur vorgesehen ist App-kompatibel (möglicherweise Muskelgedächtnis für einige Menschen beim Übergang). Ich weiß jedoch, dass nicht jeder von dieser Idee begeistert ist.
Wenn wir sehen, dass psh
sehr beliebt ist, können wir powershell
und psh
tauschen.
Zum Hinzufügen von Alias kann Hilfe https://stackoverflow.com/questions/2016722/one-dll-multiple-projects sein
Ich mag die Idee nicht, dass psh die Exe wird und PowerShell als Link verbannt wird. Sie werfen 10 Jahre Publikumsloyalität für eine potenzielle Benutzerfreundlichkeit unter Nicht-Windows weg, bei der die Zielgruppengröße unbekannt und (zumindest zu Beginn) potenziell klein ist.
Je mehr ich von PowerShell v6 sehe, desto mehr scheinen die vorhandenen Windows-Benutzer ignoriert zu werden, um Nicht-Windows-Benutzer davon zu überzeugen, PowerShell zu übernehmen. Wo endet dieser Prozess?
@RichardSiddaway Ich habe nicht den Eindruck, dass das PowerShell-Team Windows-Benutzer überhaupt ignoriert, und ich bin hauptsächlich ein Windows-Benutzer mit einem Windows Phone. Ich war derjenige, der dies nicht aufgrund eines Linux-Konzepts verlangte, sondern aufgrund meiner eigenen Herausforderungen, von cmd zu Powershell überzugehen.
Tatsache ist, dass Windows PowerShell ein ausgereiftes Produkt ist, das jedoch nicht plattformübergreifend entwickelt wurde. Damit dies funktioniert, muss die anfängliche Investition zu Beginn plattformübergreifend höher sein, was beiden Welten zugute kommt. Die Dinge werden sich in den nächsten Veröffentlichungen ausgleichen.
Abgesehen von Aliasen und Parameter-Aliasen sehe ich nicht viel, was sich negativ auf Windows-Benutzer auswirkt. Wenn es ein bestimmtes Problem gibt, das ein Problem darstellt, sprechen Sie es bitte in diesen Problemen an. Die Debatte ist gut für die Plattform und wir müssen sicherstellen, dass beim Übergang nichts Besonderes an PowerShell verloren geht.
@ SteveL-MSFT Kannst du noch mehr Gründe dafür liefern, dass psh
oder pwsh
zur EXE-Datei wird? Wenn sich daraus Vorteile ergeben, bin ich möglicherweise eher geneigt, dies zu bevorzugen.
Autsch auf der Batch-Datei. Wie auch immer, damit der Symlink unter Windows funktioniert? Ich habe das lieber als eine andere Schicht durch cmd.
@ dragonwolf83 Ich würde mir vorstellen, dass die Leute im Laufe der Zeit lieber 3 oder 4 Zeichen gegen 10 eingeben würden. Obwohl wir immer das Eingeben von powershell
, scheint es aus einer langfristigen Perspektive, dass wir für die kürzere Version optimieren sollten
Ihre Kommentare zu Windows PowerShell sind genau richtig.
@ dragonwolf83 :
Autsch auf der Batch-Datei. Wie kann der Symlink unter Windows funktionieren?
Ich höre dich. Leider hat mein Hilferuf bisher sehr wenig Beachtung gefunden.
Powershell.exe ist 78k, wäre es so schlimm, weitere 78k als psh.exe zu haben ...
2 doppelte ausführbare Dateien zu haben, könnte eine einfache Lösung sein, könnte aber auch zu Verwirrung führen, da ich mir vorstellen kann, dass Benutzer darüber nachdenken, ob es einen Unterschied zwischen den 2 gibt. Wenn ich neu in PowerShell wäre und 2 verschiedene Beispiele (z. B. auf SO) gesehen hätte Zeigen Sie, wie Sie PowerShell aufrufen / öffnen. Dann würde ich mich sofort fragen, welches Beispiel ich wählen soll, da ich davon ausgehen würde, dass es einen Unterschied gibt ...
IMO das ist dumm. cmd.exe ist in Windows 10 1703 weitgehend verborgen, sodass Sie Powershell.exe selten über die Legacy-Shell starten würden.
Kein großer Fan davon - wie oft tippst du powershell
, damit es zu einem Problem wird? (Auch ein totales Problem mit dem Fahrrad;)) Setzen Sie in Windows 10 und Server 2016 "Eingabeaufforderung durch Windows PowerShell ersetzen, wenn ich mit der rechten Maustaste auf das Startmenü klicke oder Win + X drücke" und es ist so kurz wie Win + x, i oder unter Linux Fügen Sie Ihrer vorhandenen Shell einen Alias mit dem von Ihnen bevorzugten Namen hinzu.
Das heißt, was ist mit:
ps1
- nach der Dateierweiterung unter Windows, kurz, einfach zu tippen, einprägsampsps
- ist kurz und typisierbar, lässt sich aber offen für 'typisches M $ bloat' Slangingips
- wie bei Invoke-PowerShell scheint es sich nicht um ein Paket in RedHat- oder Ubuntu-Repos zu handeln, und yum provides "*/ips"
zeigt keine Binärdateien an, mit denen man bei einer schnellen Überprüfung in Konflikt geraten kannLassen Sie es mich so fragen: Hat jemand einen starken Grund, nicht mit pwsh zu gehen?
Es ist hässlich und unaussprechlich, braucht mehr Silben als 'Powershell' selbst, ist nicht besonders einfach zu tippen und sieht aus, als ob es von Internet-Pwnd / Pwnt stammt.
Wenn wir bald PowerShell als Standard-Shell unter Windows haben, wird der Dateiname (Länge) unwichtig.
PowerShell Core ist ein portables Projekt - wir müssen auch an Unix denken.
@ PowerShell / Powershell-Komitee hat dies besprochen und wo wir gelandet sind, soll PSCore6-Binärdatei nur pwsh
ohne zusätzliche Verknüpfung / Alias für powershell
heißen. Der Vorteil besteht darin, dass unter Windows eindeutig angegeben wird, ob Sie Windows PowerShell oder PowerShell Core verwenden. Unter Nicht-Windows ist die Eingabe kürzer und konsistenter mit anderen Shell-Namen. Basierend auf Kundenfeedback können wir in Zukunft immer einen powershell
Link / Shortcut / Alias hinzufügen.
Meine Stimme ist psh.exe.
Es lebe die neue PassWord / Per-Week / PoliceWoman SHell!
Meine Stimme wäre gewesen, es in Ruhe zu lassen.
Wie sprechen wir pwsh aus?
pwsh
p.wush
p.woosh
puh.wush
Hoffentlich etwas besseres als diese
@jonathanmedd Ich habe pwish
wie wish
mit einem p
.
Angesichts der Tatsache, dass _pwsh_ ein rekursives Akronym ist (ähnlich wie _GNU_) - Bitte, warum pwSH? - Ich schlage "pweesh" vor, wie ein süßer Hase mit einem lispelnden Spruch "bitte".
Scherz beiseite:
Obwohl ich persönlich denke, dass es unglücklich war, sich für pwsh
, gehe ich davon aus, dass wir uns bald daran gewöhnen werden und nicht wieder darüber nachdenken werden.
Was die Aussprache betrifft: Ich persönlich sehe keine Notwendigkeit für eine, da der vollständige Name kurz genug ist und für jeden, der in der Welt von PowerShell lebt, die Zuordnung offensichtlich ist. (Ein Beispiel aus der Unix-Welt: zsh
wird anscheinend als zee shell
oder zed shell
ausgesprochen , nicht als einzelne Silbe).
P-Dub Shell
?
P Double U Shell
oder P Double U S H
ist nur schmerzhaft zu sagen. Mehr Silben als PowerShell
aber Sie möchten wahrscheinlich PowerShell
von pwsh
. So wie bash
von Bourne-Again Shell
.
Sie möchten wahrscheinlich PowerShell von pwsh unterscheiden
In Bezug auf die offiziellen vollständigen Namen ist es _PowerShell Core_ vs. _Windows PowerShell_ - _PowerShell_ kann sich auf jede Edition beziehen.
Wenn dies aus dem Kontext nicht ersichtlich ist, wird das Hinzufügen des entsprechenden Qualifikationsmerkmals eindeutig - und möglicherweise nicht allzu oft benötigt (z. B. in einem reinen Unix-Kontext).
Längerfristig, da PowerShell Core die Edition ist, die auf "allen" Plattformen ausgeführt wird, wäre ich nicht überrascht, wenn _PowerShell_ zu einer allgemeinen, informellen Abkürzung für _PowerShell Core_ (die "Standard" -PowerShell) mit einem Qualifikationsmerkmal - _Windows_ - würde. Wird nur verwendet, um auf die Windows-Edition zu verweisen.
Nebenbei:
So wie Bash von Bourne-Again Shell unterschieden wird.
bash
_ist_ die _Bourne-Again SHell_ - sie steht im Gegensatz zu ihrem Vorgänger, der _Bourne SHell_ ( sh
,
vor POSIX standardisierte die Sprache).
@ mklement0 Ich spreche über die Unterscheidung von pwsh
der Binärdatei von PowerShell
der Sprache / Shell. Unterschiedliche Implementierungen / Plattformen von PowerShell werden nicht unterschieden. Ebenso wie bash
verwendet wird, um die Binärdatei von Bourn-Again SHell
. Sie sind austauschbar, ja, aber wenn Sie die 2 unterscheiden müssen, brauchen Sie eine klare Möglichkeit, pwsh
auszusprechen.
push: smile:
Vielleicht:
p shell
oder p w shell
@markekraus :
Ah, ich verstehe, danke für die Klarstellung.
Wenn Sie den genauen Namen der Binärdatei übermitteln möchten, hilft Ihnen keine Aussprache, bei der der Name nicht richtig geschrieben ist (das hätte nur mit so etwas wie posh
funktioniert).
Daher sollte die Bezugnahme auf die _PowerShell-Binärdatei / ausführbare Datei für alle bereits Kenner funktionieren, und für andere müssen Sie sie trotzdem formulieren.
Wenn Sie den genauen Namen der Binärdatei angeben möchten, hilft Ihnen keine Aussprache, bei der der Name nicht buchstabiert wird.
Wir müssen uns darauf einigen, dass wir uns nicht einig sind 😃.
Ich verstehe Ihren Wunsch, dass das funktioniert - wie es zum Beispiel bei "bash" und "posh" der Fall ist -, aber wie Ihre eigenen oben genannten Kämpfe bestätigen, funktioniert es nicht bei "pwsh" - was wir fairerweise annehmen Ich stecke jetzt fest.
es funktioniert nicht mit "pwsh"
Nun, nicht mit dieser Einstellung, tut es nicht! 😉 Ich habe es pwish
und werde es wahrscheinlich auch weiterhin tun. Aber ich erstelle nur einen Dialog, um zu sehen, ob andere sich etwas anderes einfallen lassen. push
ist gut, wenn man die Aussprache von w
in einigen Sprachen berücksichtigt. pwsh
nicht vollständig uneinlösbar, IMO. Vielleicht wird sich jeder für p w s h
. Aber es ist noch zu früh, um zu sagen, dass wir hier fertig sind, und die Angelegenheit als entschieden zu betrachten, IMO.
:) :)
Du hast recht.
Ich glaube, ich habe mich zu sehr auf den Aspekt konzentriert, die genaue Schreibweise an jemanden zu übermitteln, der noch nicht mit PowerShell vertraut ist, anstatt auf einen Kurznamen, der durch Konventionen für diejenigen festgelegt wurde, die bereits Bescheid wissen (die bereits wissen, wie man diesen Kurznamen pwsh
zuordnet)
Was ist mit MSPosh? Kürzer als PowerShell.exe und folgt Standards, während es gleichzeitig ein lustiger Name für The PowerShell Hero ist ?
@ 1RedOne der PowerShell-Held / Avatar wird immer PoSH-Chan in meinem ❤️ sein
Es scheint, dass das PWSH-Team sich beeilte, seinen Namen zu ändern. :-)
Ich stimme für pscmd.exe
Wenn Sie cmd in Windows eingeben, sollte es tatsächlich angezeigt werden! und es ersetzt tatsächlich das cmd ...
Wenn dies eine Frage des Muskelgedächtnisses ist, lassen Sie uns dieses Problem beheben.
Wenn es nur zum Spaß ist, einen coolen neuen Namen zu finden, sollte es pscore.exe sein, da es das ist.
nur meine 2 Cent.
pwsh
, die erste Wbject-Wriented-Shell des wwrld. Ich freue mich auf zwei neue Cmdlets, die dieses Muster fortsetzen:
Get-Cwntent servers.txt | FwrEach-Wbject {
Invwke-Cwmmand -CwmputerName $_ -Scriptblwck { .. }
}
;)
- -
Ref Aussprache, was ist mit " powsh " wie "Beutel" oder "Couch" mit einem weichen "s" gesagt. (Denken Sie, Sean Connery Impressionisten sagen "Beutel").
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.
Ich vermute, diese Fehlermeldung hängt mit diesem Problem zusammen. Wie behebe ich das?
Was das eigentliche Namensproblem betrifft, stimme ich für pwsh, da Bash die Bourne Again SHell ist.
Ich stimme für PWSH. Und ich würde es als Push aussprechen.
Ich habe in der Community viele gesehen, die Posh verwendet haben, daher wäre dies meine zweite Wahl, obwohl ich denke, dass MS versucht, nicht mehr Posh zu nennen.
Ich stimme für pwr
!
@ DaleMitchell wie hast du diesen Fehler bekommen? Wenn Sie es selbst erstellt haben, haben Sie build.psm1 neu geladen?
Ich habe in der Community viele gesehen, die vornehm waren
https://github.com/dahlbyk/posh-git zum Beispiel.
pwsh
wird posh
ausgesprochen. @SaschaNaz POSH existiert leider schon als Shell
Habe ich eine Abstimmung von @ PowerShell / Powershell-Komitee darüber verpasst, wie es ausgesprochen wird? :) :)
Ich dachte, wir könnten es vielleicht Microsoft Next Generation Command Line Interface Shell Experience 2017
aussprechen, oder vielleicht einfach powershell
.
Wird erst verwendet, wenn die Microsoft Next Generation-Befehlszeilenschnittstelle Shell Experience 2017 Service Pack 2 veröffentlicht wurde ...
POSH existiert leider schon als Shell
Ja, es wird SEHR verwirrend sein, wenn ein Benutzer vornehm sein möchte, sudo apt install posh
versucht und dann eine völlig andere Shell bekommt.
Übrigens , Pah-Sh ? Mit Sicherheit letzteres?
Der Paketname ist immer noch Powershell, keine Änderung dort:
sudo apt install powershell
Ein kurzer (meinungsgebundener) Beitrag zum Stand der Debatte:
Was den Dateinamen der Binärdatei betrifft: Die Entscheidung wurde getroffen und veröffentlicht: pwsh
es.
Wie für _ Aussprache_:
Es gibt keine, die dem Uneingeweihten die genaue Schreibweise der Binärdatei vermitteln kann - keine andere Wahl, als sie zu formulieren.
Für den Eingeweihten ist "PowerShell" wohl alles, was benötigt wird, da aus dem Kontext normalerweise klar hervorgeht, ob man sich auf das Produkt oder den Dateinamen der Binärdatei bezieht ( @markekraus 'Anliegen); In letzterem Fall übersetzt der Eingeweihte dies automatisch in pwsh
in seinen Köpfen.
Fügen Sie bei Bedarf "Core" und "Windows" hinzu, um die Unterscheidung zu treffen.
Unnötig zu erwähnen, dass die leidenschaftliche Suche nach dem endgültigen informellen einsilbigen Spitznamen fortgesetzt wird ...
Da in jedem Fall eine mentale Zuordnung zu pwsh
erforderlich ist, können informell etablierte wie "Posh" ebenfalls weiterhin verwendet werden.
Früher, als wir MKS Toolkit für die plattformübergreifende Skriptunterstützung verwendeten, verwendeten wir ksh.exe
aber wir nannten es immer KornShell
. Obwohl die Binärdatei pwsh
, werde ich sie PowerShell nennen.
Ich denke, dieses ganze Problem "Wie spricht man den Binärnamen aus?" Hätte vermieden werden können, wenn der Binärname pwrsh
aber dieses Schiff ist gesegelt.
In den "alten Tagen" (zählt vor 15 Jahren?) Nannte mein Team das binäre "kish", und "KornShell" diente der allgemeinen Diskussion der Shell.
Beispiel:
"Geben Sie ooser bin kish ein und drücken Sie die Eingabetaste. Jetzt befinden Sie sich in der KornShell."
zählt vor 15 Jahren?
Es ist etwas relativ zu der Person, die ich denke. Meine Erfahrung mit KornShell begann vor 24 Jahren. Vor 15 Jahren war meine Tochter ein Kleinkind und das scheint noch nicht so lange her zu sein. Huch - die Zeit vergeht wie im Fluge.
Mein Team nannte das binäre "Kish"
Ich kann nicht sagen, dass ich es jemals so ausgesprochen habe. :-)
Ich kann nicht sagen, dass ich es jemals so ausgesprochen habe. :-)
Ja. außerhalb dieses Teams war es immer "ksh" oder "KornShell". Aber genau darum geht es: zu diskutieren, wie die Leute die Buchstaben "pwsh" (ohne "PowerShell") aussprechen, und zu prüfen, ob es einen Konsens gibt. Es ist keine ganz ernsthafte Diskussion und nichts wird jemals eine offizielle Aussprache sein, da es sich um ein unaussprechliches Wort handelt (keine Respektlosigkeit gegenüber dem Team - push
). Aber es hat sich bewährt, dass vielleicht ein beliebter Anwärter gewinnt und wir es in Präsentationen hören werden.
Vor meiner Arbeit bei Microsoft war ich eine Unix-Person und habe immer ksh Korn Shell und csh C Shell genannt. Ich erinnere mich an niemanden in jenen Tagen, der versucht hat, sie als Worte auszusprechen: P.
Könnte jemand kurz erklären, warum eine solche bahnbrechende Änderung vorgenommen wurde? Ich bin nicht auf dem Laufenden (klar!) Und habe mit
Habe gerade meine Auffrischungslesung über den Beitragsprozess gelesen. Ich dachte, dies würde zunächst einen RFC erfordern, aber ich kann sehen, dass dies möglicherweise nicht zutrifft. Als nächstes betrachte ich die Richtlinie zum Brechen von Änderungen (https://github.com/PowerShell/PowerShell/blob/master/docs/dev-process/breaking-change-contract.md). Können Sie sich dazu äußern, in welchen Bereich diese Änderung gefallen ist und so weiter?
Ich versuche nicht, etwas klares zu regeln, sondern möchte in der Lage sein, effektiv mit anderen Interessierten zu kommunizieren, die keine Spezifikationen und Probleme lesen. Vielen Dank!
@ halr9000 https://github.com/PowerShell/PowerShell/issues/4214#issuecomment -335989245
mein 2c. Dies ist eine wichtige Änderung. Zu viele vorhandene Batchdateien beim Beenden von Produktionsszenarien verwenden bereits Powershell.exe, um PowerShell-Skripts zu initiieren. Ich bin nicht dagegen, einen zusätzlichen kurzen Befehl zum Starten derselben ausführbaren Datei bereitzustellen, aber das Entfernen von "Powershell" wird großes Chaos verursachen. Bitte geben Sie eine Möglichkeit an, beide zu verwenden (Alias oder was auch immer).
@RudolfHenning Im Gegensatz zu früheren Versionen von Windows PowerShell arbeitet PowerShell Core neben anderen Versionen von sich selbst und älteren Versionen von Windows PowerShell. Es muss eine Möglichkeit geben, sowohl Windows PowerShell als auch PowerShell Core über die Befehlszeile und über Batch-Skripte aufzurufen, ohne den vollständigen Pfad der beabsichtigten EXE aufrufen zu müssen oder ohne die Pfadreihenfolge zu riskieren, die dazu führt, dass powershell.exe
den falschen Aufruf ausführt Ausführung.
Selbst nach der Veröffentlichung von PowerShell Core 6.0 wird Windows PowerShell (5.1 und niedriger) weiterhin für viele Windows-zentrierte Aufgaben verwendet werden müssen, da viele der offiziellen und Community-Module und -Skripts Zugriff auf vollständige CLR-Objekte erfordern, die in Core nicht verfügbar sind.
Außerdem muss jeder, der seine Skripte von früheren Versionen auf 6.0 portiert, wahrscheinlich Anpassungen vornehmen, da es zwischen 5.1 und 6.0 ziemlich viele wichtige Änderungen gibt. Da der Code ohnehin berührt werden muss, kann der Stapel von powershell.exe
auf pwsh.exe
umgeschaltet werden. Wenn sie PowerShell Core nicht portieren, wird nichts kaputt gehen und die Skripte werden unter Verwendung von Windows PowerShell weiterhin mit powershell.exe
.
Danke für die Erklärung.
Da ich sowohl Windows als auch einige Linux-Betriebssysteme verwende, ist die Kompatibilität meiner Skripte manchmal ein Problem - ja, ich weiß, dass die PowerShell-Bibliotheken unter Linux streng genommen noch Beta sind. Ich habe viel Zeit und Mühe in die Erstellung von Skripten für meine Linux-Maschinen investiert.
Wie auch immer, mach weiter so!
Der Powershell-Runner von TeamCity geht davon aus, dass die ausführbare Datei powershell
. Da es unter Linux kein Powershell 5 gibt, das Kompatibilitätsprobleme verursacht, sollte das Linux-Paket weiterhin den Symlink powershell
erstellen. Dies war ein unnötiger Bruch.
Was zum, bin ich im April angekommen? Werden wir als nächstes Vokale aus PowerShell-Commandlets entfernen? Das muss ein Witz sein.
ältere Skripte (Docker) mit "Powershell-Befehl xxxx" funktionieren mit der neuen Beta-9-Version nicht mehr ....
Warten auf den Shitstorm
Es gibt viele Gründe für eine Änderung an der "wichtigsten" Stelle oder am Einstiegspunkt, aber den Befehlsnamen um 6 Bytes zu verkürzen und ihn weniger lesbar zu machen, gehört nicht dazu ...
Wie oft in der Vergangenheit haben wir uns entschieden, einen besseren / längeren Namen in unserem Code zu verwenden, weil das Lesen einfacher sein kann / muss als das Schreiben ....
cust mein 2cent
Grüße
Werner
Ich versuche die Empörung und das Scheitern zu verstehen.
Die Leute beschweren sich, dass der neue Name die Dinge kaputt macht, aber PowerShell Core befindet sich noch in der Beta. IMO, wenn jemand eine Beta-Technologie im Produktionscode verwendet, lädt er eine Katastrophe ein (ich verwende hier höfliche Sprache). Die Natur von Alpha- und Beta-Releases besteht darin, mit bahnbrechenden Änderungen gefüllt zu sein. Es gibt keine Illusion, dass dies keine Beta ist. Beta ist in den Versionsnamen eingebrannt: 6.0.0-beta.9
.
Diese Namensänderung hat keine Auswirkungen auf Windows PowerShell. Es sollte nichts kaputt machen, was Sie gerade in Windows tun. Wenn Sie Dinge unter Linux tun, müssen Sie sich damit abfinden, dass Sie eine Beta-Version verwenden, anstatt die Beta-Version als Beta-Version zu beschuldigen. Verwenden Sie etwas anderes, bis die stabile Version RTM ist, wenn Sie die Änderungen zwischen den Beta-Versionen nicht bewältigen können.
Ich verstehe, dass die Leute den Namen nicht mögen. Sie können nicht immer bekommen, was Sie wollen. Ich persönlich habe PowerShell.exe gehasst, weil das Schreiben lang und umständlich ist. pwsh
ist mindestens weniger Zeichen, die ich durcheinander bringen muss. Wenn Sie sich den Diskussionsthread ansehen, können Sie sehen, dass mehrere Optionen diskutiert wurden, von denen einige viel schlechter (IMO) als pwsh
.
Die Leute verstehen dies als einen unangenehmen Versuch, sich in die coolen Linux-Kids einzufügen, wenn einer der Hauptmotive für einen neuen Binärnamen Windows ist. Ja, ein Linux-Name wurde gewählt, aber weißt du was? PowerShell ist jetzt auch ein * nix-Bürger. Ich denke, es ist Zeit, dass sich die Leute an diese Tatsache gewöhnen. Eines der Ziele von Core ist die plattformübergreifende Portabilität. Ja, Entscheidungen können und werden also nicht nur unter Windows getroffen werden.
Das sind also meine 2 Cent wert.
Eines der Ziele von Core ist die plattformübergreifende Portabilität
Ein Teil der plattformübergreifenden Portabilität besteht darin, dass dieselben Befehle auf beiden Plattformen funktionieren sollten, wenn sie dasselbe tun. Vor dieser Änderung konnte ich powershell
ausführen, egal welches Betriebssystem ich verwendete, und das Richtige finden. Jetzt kann ich das nicht mehr machen.
Um Software zu erstellen, die einfach zu bedienen ist, müssen eine Million Kleinigkeiten richtig gepflegt werden. Die Verwendung seltsamer und nicht intuitiver Namen wirkt dem entgegen.
Ich konnte
powershell
ausführen, egal welches Betriebssystem ich verwendete, und das Richtige bekommen. Jetzt kann ich das nicht mehr machen.
Nicht genau. Sie können powershell
unter Windows ausführen und Windows PowerShell herunterladen, dann powersehll
unter Linux ausführen und PowerShell Core herunterladen. Jetzt können Sie pwsh
unter Windows oder Linux ausführen und PowerShell Core herunterladen. JETZT sind wir in dem Zustand, den Sie sich wünschen. wo wir uns nach wie vor in einem inkonsistenten Zustand befanden.
Die Verwendung seltsamer und nicht intuitiver Namen wirkt dem entgegen.
Nun, es ist klar, dass es nicht allgemein beliebt ist, aber ... welche Alternative schlagen Sie vor? Ich sehe, dass alle über den Namen nachdenken, aber keine Alternativen zu dem zugrunde liegenden Problem, das dieser Name ändert. Wie gesagt "Sie können nicht immer bekommen, was Sie wollen"
Egal welcher Name gewählt wurde, die Leute wären unglücklich.
@ Markekraus
Mein Feedback betraf die Benutzerfreundlichkeit und die Besorgnis eines Shitstorms, der einige Umbenennungen und endlose Diskussionen erzwingt.
Sie können Powershell unter Windows ausführen und Windows PowerShell herunterladen, dann Powersehll unter Linux ausführen und PowerShell Core herunterladen. Jetzt können Sie pwsh unter Windows oder Linux ausführen und PowerShell Core herunterladen. JETZT sind wir in dem Zustand, den Sie sich wünschen. wo wir uns nach wie vor in einem inkonsistenten Zustand befanden.
Die Trennung von Windows und Core ist wirklich ein BESSERER Grund für die Umbenennung als "Erstellen Sie einen kürzeren Namen"!
Ich schlage vor, diesbezüglich klarere Mitteilungen zu machen (Titel der Ausgabe, Versionshinweise usw.)
Ich habe die ersten 2-3 Seiten dieser Ausgabe gelesen und die Diskussion war nur über die Länge ....
anderes Feedback:
In den letzten Wochen habe ich viele Codierungen mit PS-Core auf Docker und * nix gemacht
Ich mag es, muss aber poliert werden.
Idee / Vorschlag:
Wenn der Name von Powershell in pwsh geändert wird, ändern Sie die Version von 6.0 auf 1.0 (dieselbe Diskussion wie bei der Umwandlung von ".Net 5.0" in "dotnet core 1.0"
Grundsätzlich ähnelt CORE eher einer Version 1.0 als einer Version 6, speziell auf * nix !!
Grüße
Werner
@WernerMairl Es gibt eine offene Diskussion über die Verwendung von 1.0 anstelle von 6.0.0 # 5165. Bitte gehen Sie zu diesem Thread und lesen und kommentieren.
Da Sie es verwendet haben und auf Dinge gestoßen sind, die Ihrer Meinung nach poliert werden müssen, überprüfen Sie bitte offene Probleme, um festzustellen, ob sie das betreffen, auf das Sie gestoßen sind. Wenn es ein offenes Problem gibt, stimmen Sie darüber ab oder kommentieren Sie es. Wenn nicht, öffnen Sie bitte ein neues Problem, damit es behoben werden kann. Einige von uns Community-Mitgliedern sind aktiv an der Behebung von Problemen mit niedrigerer Priorität beteiligt, und das Microsoft-Team hat hervorragende Arbeit geleistet, um Probleme mit höherer Priorität und schwierigeren Problemen zu lösen. Außerdem ist es nie zu spät, selbst Mitwirkender zu werden!
In Bezug auf die Problembeschreibung und die Änderungskommunikation stimme ich zu, dass die Kommunikation dieser Änderung verbessert werden konnte und warum dies notwendig war. Die Rollen verschiedener Personen in diesem Repo können etwas verwirrend sein, aber ich bin kein Teil des PowerShell-Teams, sondern nur ein Community-Mitarbeiter mit (im Wesentlichen) Forum-Moderationsrechten. Ich kann nicht für das PowerShell-Team sprechen, aber ich vermute, dass sie diese Tatsache selbst verstehen.
Zu ihrer Verteidigung ist dieser schwer zu kommunizieren. Die meisten Beschwerden scheinen auf das mangelnde Verständnis der Ähnlichkeiten und Unterschiede zwischen Windows PowerShell und PowerShell Core zurückzuführen zu sein. Um diese Änderung effektiv zu kommunizieren, hätten sie auch das, was im Blog-Artikel vom 14. Juli dargelegt wurde, erneut aufbereiten müssen. Selbst dann haben die Menschen immer noch Schwierigkeiten, durch die Ähnlichkeiten und Unterschiede zu navigieren. Ich denke, dass es einer ausführlichen Beschreibung bedarf, warum die Namensänderung vorgenommen wurde, die viele immer noch nicht lesen würden. Ich vermute, die Fackeln und Heugabeln wären gekommen, egal was passiert.
Nicht genau. Sie können Powershell unter Windows ausführen und Windows PowerShell herunterladen, dann Powersehll unter Linux ausführen und PowerShell Core herunterladen. Jetzt können Sie pwsh unter Windows oder Linux ausführen und PowerShell Core herunterladen. JETZT sind wir in dem Zustand, den Sie sich wünschen. wo wir uns nach wie vor in einem inkonsistenten Zustand befanden.
Ich verstehe, was du meinst, aber ich kontere, dass dies nicht das ist, was ich will. In meiner Aussage ist eine versteckte Annahme enthalten: Ich erwarte, dass PowerShell und PowerShell Core vollständig gleichwertig sind, solange ich gemeinsame Funktionen verwende. Bisher war dies in allen meinen Anwendungsfällen ohne Probleme.
@sandersaares Ich glaube, deine Erfahrung ist eine von Glück. Es passt sicherlich nicht zu meiner Erfahrung. Ich halte diese Annahme auch für gefährlich. Dies ist eine Hauptversion mit einer Menge dokumentierter Änderungen an einer völlig anderen zugrunde liegenden Plattform. Dies ist nicht wie bei früheren Hauptversionen von PowerShell mit nahezu 100% Abwärtskompatibilität.
Ich sehe einige Leute, die immer noch die falsche Annahme machen, dass die Änderung des ausführbaren Namens in erster Linie dazu diente, beim Tippen zu sparen. Ich kann sehen, wie die Leute diesen Eindruck bekommen haben, seit diese ursprüngliche Ausgabe, die für die PR verwendet wurde, mit einem Titel begann, der nach einem kürzeren Namen fragte.
Ich stimme zu, dass wir unsere Kommunikation verbessern können, da wir nicht erwarten sollten, dass jeder alle Kommentare liest, die der Ausschuss zu Entscheidungen macht. Besonders bei einem kontroversen wie diesem, bei dem die Zusammenfassung der Entscheidung leicht verloren geht.
Es scheint auch ein grundlegendes Missverständnis darüber zu bestehen, was PowerShell Core 6 ist, insbesondere in Bezug auf Windows PowerShell. Windows PowerShell 5.1 ist und bleibt die In-Box-Version von PowerShell unter Windows. Mein Team unterstützt es auch weiterhin bei Bedarf. Wir gehen davon aus, dass sich Kunden weiterhin so lange auf Windows PowerShell verlassen, wie dies erforderlich ist. Dies kann durchaus mindestens die nächsten 10 Jahre sein. Ich denke, es war erst vor kurzem, als die Downloads von WMF5.1 endlich die Downloads von WMF4.0 übertrafen.
PowerShell Core 6 ist die nächste Entwicklung von PowerShell, bei der es sich nicht nur um plattformübergreifende, sondern auch um Open Source handelt. Wie @markekraus feststellte, handelt es sich um eine wichtige Versionsänderung, die uns mehr Flexibilität beim Akzeptieren von Änderungen ermöglichte, die wir für Windows PowerShell niemals in Betracht ziehen würden. Beachten Sie auch, dass PowerShell Core 6 explizit so konzipiert ist, dass es nebeneinander funktioniert (nicht nur mit Windows PowerShell, sondern auch mit anderen Versionen von PSCore6). Wenn Sie powershell
eingeben, sollte es keine Unklarheit darüber geben, was Sie unter Windows erhalten. Ich möchte hier nur darauf hinweisen, dass die Diskussion zwischen 6.0 und 1.0 bereits vor langer Zeit vor dem Börsengang stattgefunden hat und wahrscheinlich nicht wiedereröffnet wird.
@ SteveL-MSFT ein Blogbeitrag zur Namensänderung wäre gut. Es könnte den Haupttreiber für die Änderung des Namens anhand eines klaren Beispiels für das Problem unter Windows behandeln. Es wäre auch gut zu beschreiben, warum Posh und Psh den Schnitt nicht so gut gemacht haben.
Richten Sie "Powershell" möglicherweise als Alias für pwsh beim Entpacken + Installieren ein. Dies hat gerade einen Build gebrochen, an dem ich ein paar Tage gearbeitet habe, bis ich dieses Problem aufgespürt habe.
Edit: unter Linux
@markekraus hat einen schönen Blog-Beitrag, der das Was und Warum erfasst:
https://get-powershellblog.blogspot.sg/2017/10/why-pwsh-was-chosen-for-powershell-core.html
Heute habe ich die erste Verwendung von pwsh
auf SO hier gesehen, obwohl ich bezweifle, dass die Person über diesen Thread Bescheid weiß ...
Können wir eine offizielle Entscheidung über die Aussprache von pwsh
treffen? Die PNG-Spezifikation enthält eine Aussprache in Abschnitt 1. Kann auch eine für PowerShell bereitstellen. Ich möchte keine weitere SCSI "scuzzy" / "sexy" Situation.
Sieht für mich wie "Poosh" aus.
@apjanke Die allgemein akzeptierte Aussprache von pwsh
ist posh
Funktioniert bei mir. Danke für die offizielle Bestätigung!
Für alternative Aussprachen: [1]
_The Shell früher bekannt als PowerShell_ (_TSFKAP_ auf Georgisch )
_Die Shell, die es nicht wagt, ihren Namen auszusprechen (weil der Name ihrer ausführbaren Datei nicht aussprechbar ist) _ (von walisischen Sprechern bevorzugt).
[1] [Parodie.
Hilfreichster Kommentar
Ich würde Abstimmung für
psh
- das Projekt , das Sie als Kollision zitieren hat noch keine gesehene Veröffentlichung in 10 Jahren, und war nie in jedem Fall in Paket repos.