Powershell: قم بإنشاء pwsh كاسم أقصر لاستدعاءowershell.exe

تم إنشاؤها على ١١ يوليو ٢٠١٧  ·  127تعليقات  ·  مصدر: PowerShell/PowerShell

ذاكرة العضلات من تبديل cmd إلى بوويرشيل هي ألم. ومما يزيد الأمر سوءًا حقيقة أنه أطول بكثير من كتابة cmd أو bash. حتى مع Windows Search in Start ، غالبًا ما يلتقط ISE إذا كنت تستخدمه لفترة ، لذلك غالبًا ما تكون هناك حاجة إلى كتابة الاسم الكامل.

سيكون الاسم الأفضل posh.exe أو أي امتداد صالح آخر. إنه طويل مثل bash وحرف واحد فقط أطول من cmd. لقد كان Posh هو الاختصار المقبول في المجتمع لجميع الأشياء PowerShell ، لذلك هناك بعض الإلمام بها. لا أعتقد أن هناك أي تعارضات مع التطبيقات الأخرى التي قد يسببها هذا ، ولكن هذا قد يحتاج إلى بعض البحث.

يمكن تحقيق ذلك بطريقتين.

  1. أنشئ اختصارًا رسميًا أو ارتباطًا رمزيًا باسم posh يشير إلى Powershell.exe
  2. إعادة تسمية powerhell.exe إلى posh.exe.

الأول يحافظ على التوافق مع الإصدارات السابقة ويسمح للمستخدم بالاختيار بين posh أو Powershell.exe. النصوص الموجودة لم تتأثر.

يمكن أن يساعد هذا الأخير في منح المزيد من الحرية لقضايا مثل # 4199 ومقترحات POSIX الأخرى لكيفية بدء الغلاف. ومع ذلك ، فهو تغيير جذري وسيحتاج إلى إعادة النظر في التأثير والآثار المترتبة على العلامة التجارية.

أعتقد أن إنشاء اختصار رسمي فاخر هو الخيار الأفضل بأقل تأثير. قد تعطي الوثائق الجديدة الأفضلية للتباهي كطريقة للدخول إلى PowerShell.

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

التعليق الأكثر فائدة

I سيصوتون ل psh - تمت المشروع الذي يستشهد كما اصطدام لم يشهد إطلاق في 10 عاما، وكان أبدا في اتفاقيات إعادة الشراء الحزمة في أي حال.

ال 127 كومينتر

أود أيضًا اسمًا مستعارًا قصيرًا ، ولكن هذا هو السبب في أننا لم نذهب إلى posh عندما خرجنا لأول مرة (تحدثنا عن ذلك مطولًا). يبدو أنه لا يزال حزمة محدثة أيضًا.

منفتح على الاقتراحات الأخرى ، ولكن تم أخذ معظم الاقتراحات الواضحة. بعد الشيء الوحيد wget / curl alias ، أود حقًا تجنب الاصطدام بالحزم الأخرى الموجودة هناك ، حتى لو كانت أقل شيوعًا.

لست مجنونًا جدًا بهذه الفكرة بأكملها ولكن ماذا عن pwsh ؟

لم أكن أبدًا حريصًا على الفخامة باعتبارها تقصيرًا في بوويرشيل. يبدو أن pwsh أفضل ولكن البحث السريع على الإنترنت يثير بعض المشكلات المحتملة. إذا كنا سنفعل هذا ، أقترح أقصر وقت ممكن فماذا عن ps فقط؟

حسنًا - نسيت ذلك - لقد أدركت للتو أن ps هو اسم مستعار لعملية get-process. سيكون ذلك محيرا للغاية

أنا أصبحت قوية deja vu الآن. 😉

أقدر سهولة قراءة PowerShell (عند عدم استخدام الأسماء المستعارة) لذا فإن تشغيل powershell يعمل بشكل جيد بالنسبة لي.

ps أمر موجود في Linux أيضًا.

بعض الأفكار الأخرى هي: pscmd ، psc ، monad ، psh ، pshell

هناك بالتأكيد عوائد متناقصة مع هذه الأسماء على الرغم من ما إذا كانوا يقومون بالفعل بحفظ أي شيء أو مجرد إضافة ارتباك غير ضروري إذا كانت متوفرة.

CoreSh ، pcs ، psc

يؤخذ mosh سيئة للغاية. يتم أخذ psh . [pshell] ترجع العديد من الزيارات. ومن المثير للاهتمام ، أن البحث عن msh على كل من Bing و Google يؤدي إلى ظهور العديد من النتائج لـ PowerShell (يطلق عليه Microsoft Shell) ، على الرغم من وجود msh على نظام Unix (ربما لم يتم استخدامه كثيرًا)

😄 S #، P #

ناقشت @ PowerShell / بوويرشيل-جنة هذا الأمر وهي منفتحة على وجود اسم ارتباط رمزي أقصر ، لكن لا يمكننا الجلوس على أي شخص موجود بالفعل. prsh جيدًا.

انتظر انتظر! حصلت عليه: ^sh - أو هل كان ذلك **sh ؟ (كيه).

prsh سببًا - أسهل في الكتابة من pwsh ، على سبيل المثال ، على الرغم من pwrsh - على الرغم من كونه حرفًا واحدًا. أطول - يجدر النظر أيضًا ، نظرًا لأن "pwr" هو اختصار معروف لكلمة "power".

خيار آخر ، ربما يكون مكملاً ، هو توفير متغير تلقائي تعكس قيمته _ بشكل متغير_ نفس مسار البرنامج الثنائي الذي أطلق الجلسة الحالية.

bash لديه $BASH لذلك.

ميزة هذا الأسلوب هو أنه منيع للتغيرات في / التلاعب $env:PATH .

لدينا بالفعل $PSHOME - يمكن القول أن شيئًا مثل $PS ليس كثيرًا جدًا.

ومع ذلك ، يتعلق هذا بالنقاش حول عدم تلويث مساحة الاسم العالمية بالمتغيرات التلقائية - راجع # 4216.

.Net Core و CoreFX و CoreCLR و PowerShell Core - يمكننا اعتبار "الأساسية" كقاعدة.

pscore جيد بالنسبة لي حتى لو لم ينته بـ sh على الرغم من أن أعضاء اللجنة الآخرين رفضوا ذلك

pscore أو coreps - LGTM.

يمكننا أن نتذكر monad و msh (المذكور أعلاه).

أنا أحب pwrsh الأفضل حتى الآن. pscore ليس سيئًا أيضًا على الرغم من أنه يصبح نوعًا من الطول عند 6 أحرف. من المحتمل أن تكون أربعة أحرف أو أقل مثالية ولكن يمكنني التعايش مع 5 أحرف مطلوبة بواسطة pwrsh .

ما يقلقني بشأن دمج كلمة "core" هو أنها لا تحتوي على معلومات مفيدة على منصات Unix ، حيث لا يوجد إصدار آخر يجب التمييز بينها.

rkeithhill ماذا عن pscx ، ها! تجربة PowerShell الأساسية. على الرغم من ذلك ، جعلني ذلك أفكر في PowerShell Core Shell آخر ، pscsh .

أنا نفسي ممزقة على بعض الأسماء نفسها. تعجبني إمكانية قراءة pwrsh و pscore لكنني أوافق على أن الحد الأقصى هو 5 أحرف. 5 أحرف تغطي الكلمة الأولى power وأي أكثر من ذلك يمكنك كتابة الشيء بالكامل. monad هي بيضة عيد فصح رائعة ويمكن قراءتها ، ولكنها مربكة لأولئك الذين لا يعرفون خلفية PowerShell. الحرف الأربعة prsh يعمل جيدًا أيضًا.

سيكون من الجيد الخروج بقائمة نهائية بالأسماء التي يمكن استخدامها وإجراء استطلاع رسمي كما فعل فريق Edge. إذا كان هناك أي حدث قادم من PS Community أو أحداث رسمية ، فيمكن إعطاء روابط للاستطلاع لمحاولة الوصول إلى جمهور أكبر.

@ dragonwolf83 :

pscsh قريب بشكل خطير من csh - ارتباط يجب أن نتجنبه.

مرة أخرى ، لا أرى أي فائدة من تضمين كلمة "core" ، خاصةً إذا كانت هناك فرصة لتوحيد الإصدارات يومًا ما (وفي _Windows_ ، يبدو أن الأشخاص قد عاشوا بشكل مريح بدون اسم قصير لـ _Windows PowerShell_ لعقد جيد) .

إعادة غموض متفق عليه monad .

تصويتي الشخصي هو pwsh أو prsh أو pwrsh .

ملاحظة: في حالة احتياج _Windows PowerShell_ أيضًا إلى اسم قصير ، فقد يكون الحل ببساطة هو البادئة بـ w ، على الرغم من أنه من بين المفضلات الخاصة بي فقط (بشكل معقول) يتم تشغيل لوحة المفاتيح كـ wprsh ، لذلك في سيناريو الاسم المختصر من نسختين تصويتي للزوج prsh / wprsh .

ما يقلقني بشأن دمج كلمة "core" هو أنها لا تحتوي على معلومات مفيدة على منصات Unix ، حيث لا يوجد إصدار آخر يجب التمييز بينها.

:-) هل يجب إعادة تسمية .Net Core؟

iSazonov : هل يجب إعادة تسمية Windows PowerShell "Windows PowerShell .NET Framework [FullCLR]؟"

I سيصوتون ل psh - تمت المشروع الذي يستشهد كما اصطدام لم يشهد إطلاق في 10 عاما، وكان أبدا في اتفاقيات إعادة الشراء الحزمة في أي حال.

Jaykul :

psh ؟ أنا لا أعرف - يحتاج إلى المزيد من "الأساسية" ، إذا سألتني.

تمزح جانبا: نقطة ممتازة عن حالة المشروع وغيابه من حزم إعادة الشراء.

psh له تصويتي أيضًا (و wpsh لـ Windows PowerShell).

(تُنطق "pshaw" و "whiplash" على التوالي).

psh له تصويتي أيضًا (و wpsh لـ Windows PowerShell).
(تُنطق "pshaw" و "whiplash" على التوالي).

هل أنت متأكد من أننا لا نستطيع استخدام posh على النوافذ ، وننطقها pish posh؟ 🤡

بيش توش! هذا كثير جدًا من المزيج بالنسبة للميشبوتشا بأكملها. 🤡

سأصوت لصالح psh - المشروع الذي استشهدت به على أنه تصادم لم يشهد إطلاقًا منذ 10 سنوات ، ولم يكن أبدًا في حزم إعادة الشراء بأي حال.

لا توجد مشكلة في الكتابة؟

لا توجد مشاكل حقوق التأليف والنشر؟

آمل أن يكون هناك شخص _ يعرف _ حقًا أن يفكر مليًا ، ولكن _ تخميني _ هو أن هذا لن يكون مصدر قلق لسببين:

  • psh ليس اسم المنتج الرسمي ، بل هو الاسم الأول فقط (بمعنى أكثر فضفاضة ، اختصار) الذي هو مجرد مساعدة فنية (على الرغم من أنه في الاستخدام الشائع قد يصبح في النهاية اختصارًا شائعًا لاسم المنتج الكامل ؛ إنه _هو_ ممكن بالأسماء / الاختصارات).

  • غالبًا ما تتعلق مشكلات العلامات التجارية باحتمالية حدوث _ارتباك_ مع العلامات التجارية الحالية ، ومما رأيناه هنا ، على الأقل في مساحة البرنامج ، يبدو أنه لا توجد تصادمات (لا أعتقد أن منشئ المحتوى الحالي البائد تقريبًا psh الريبو سيمانع أو حتى لديه قضية قانونية).

في حالة رغبة شخص ما في التجربة / يحتاج إلى حل مؤقت:

إليك حل لجميع الأسماء المستعارة يحدد الأسماء المستعارة داخل وخارج PowerShell ، على جميع الأنظمة الأساسية المدعومة: psh لـ PS Core و wpsh لـ Windows PowerShell.

  • قم بتشغيل مرة واحدة التالية لإعداد الأسماء المستعارة خارج PowerShell (مقابل cmd.exe على Windows ، مقابل bash على 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 لتعريف نفس الأسماء المستعارة داخل PowerShell - يعمل في كل من PS Core و 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"
  }

ماذا عن Paua ؟ هذه إشارة إلى صدفة باوا الجميلة (صدفة بحر من نيوزيلندا). وإلا أعتقد أن psh جيد أيضًا.
Paua Shell

هل تبيع صدفًا من الشاطئ (نيوزيلندا)؟ (فقط أمزح. جميل حقًا.)

إخلاء المسؤولية: ما يلي يهم اللغويين [الهواة] فقط.

صوتيًا ، يعمل paua فقط مع اللهجات الإنجليزية غير الروتينية (على سبيل المثال ، المملكة المتحدة ونيوزيلندا وأستراليا).

وأهل بوسطن.

@ PowerShell / بوويرشيل-لجنة يجب أن تغلق على هذا لبيتا 8

ماذا عن Posh6

ماذا عن Posh6

يبدو أن هذا قد يصبح قديمًا بشكل أسرع من وضع رقم إصدار في امتداد الملف ... ؛)

نعم ، لكن البرنامج النصي الذي يتم تشغيله سيعرف الإصدار الذي يتم تشغيله.

على الرغم من أنني أحب posh ، أعتقد أن الشاغل الرئيسي هو أن هناك حزمة حالية لنظام Linux تسمى Posh لذلك لتجنب حادثة أخرى curl ، أعتقد أن الخيار الأفضل التالي هو pwsh

أحب pwsh . كان من الجيد لو كنت قبل 10 سنوات. أفتقد msh .

أصوت لـ psh .
لم يلتزم gnp / psh منذ ما يقرب من 5 سنوات. قد تكون كذلك مهجورة.

أكره أن أقول ذلك ، لكن هذا أحد الأشياء التي قد يكون من الصعب فيها جمع إجماع قوي. : \

في هذه المرحلة ، لإغلاق الأمور ، ولتجنب أي نوع من الاصطدام (أكثر من "حسن النية" أكثر من القانوني) ، أنا مشترك في pwsh .

اسمحوا لي أن أطرح الأمر على هذا النحو: هل لديها سبب قوي بعدم الذهاب مع pwsh ؟

هل سيكون لدى أي شخص مخاوف إذا كان pwsh هو اسم الملف القابل للتنفيذ و powershell هو الارتباط الرمزي / الاختصار؟

قبل أن نجري أي موافقات هنا ، يجب أن نجيب ما هو الإصدار "الحالي" وكيف سنشير إليه وإلى نسخته المستهدفة؟

@ iSazonov لست متأكدًا من فهمي لسؤالك. لا يرتبط هذا بـ powershell -v N إذا كان هذا هو ما تطلبه. يسمح هذا ببساطة باستخدام pwsh بدلاً من powershell (على الرغم من أننا ما زلنا ندعم التهجئة powershell ).

ما يقلقني هو أكثر حول الروابط الرمزية مثل بوويرشيل -> بوويرشيل-6.0.0-بيتا
إذا تحدثنا عن اللغة ، فنحن نحب الأسماء المستعارة في الجلسة التفاعلية لأنها توفر لنا بيئة مريحة ولكن الأسماء المستعارة تمثل صداعًا كبيرًا في النصوص. أرى نفس الاسم المختصر بوويرشيل - ربما يكون مفيدًا لنوع السرعة ولكنه قد يكون مشكلة حقيقية لشجرة الدليل (الروابط الرمزية).

فكرة أخرى. هل يجب أن نفكر في نوع السرعة؟ ليست كل الحالات المقترحة جيدة من هذا المنظور.
الفكر الأخير حول النطق. مثير للاهتمام ، في اللغة الروسية نستخدم "пош" ("الفاخرة") و hypocorism "пошик" ("poshik") منذ ولادة PowerShell. أعتقد أن أي رجل روسي سيصوت لصالح "الفاخر" أو "psh".

فقط للتوضيح ، لن يكون pwsh اسمًا مستعارًا (وفقًا لمصطلحات PowerShell) ، يجب أن يكون شيئًا يمكنك الاتصال به من cmd.exe أو ملف دفعي لأنه موجود فعليًا. على الرغم من أنه ليس من الواضح بالنسبة لي كيف ننفذ هذا بالفعل إذا أردنا دعم كل من الاسم المختصر و powershell بدون وجود ملفين قابلين للتنفيذ (على الرغم من أن poweshell.exe صغير نسبيًا ...).

بالنسبة إلى posh و psh مقابل pwsh ، فإن الاهتمام الأساسي بـ posh و psh هو أنهم موجودون بالفعل (بغض النظر عن مدى بروزهم) هي). واجهتنا مشكلة في وقت مبكر مع الاسم المستعار curl لأنه يتعارض مع أداة أصلية موجودة و (ربما نكون حذرين للغاية هنا) نحاول تجنب موقف مشابه من خلال توزيع الورق القصير وهذا هو السبب في أننا تميل نحو pwsh . ربما إذا قمت بكتابة pwsh فغالبًا ما يعتاد عدد كافٍ من الأشخاص على ذلك :)

الجانب الآخر. كيف نحل نفس الشيء في PowerShell؟ نقترح الأسماء المستعارة للمستخدمين والتحسس الذكي لبذر الكتابة.
عندما ناقشنا الأسماء المستعارة في إحدى المناقشات هنا ، قلنا أن جميع الأسماء المستعارة الحالية يجب ألا تُقرأ فقط - يجب أن نسمح للمستخدمين بإزالة / تغيير أي أسماء مستعارة. بعبارة أخرى ، لا ينبغي أن تكون الأسماء المستعارة قياسية بشكل حصري. يجب أن تكون أسماء أوامر cmdlet الأساسية فقط قياسية. من وجهة النظر هذه ، لا ينبغي أن نقدم اسمًا مستعارًا "قياسيًا" لـ "بوويرشيل" - يجب أن يكون أي مجتمع أو موزع قادرًا على اختيار الاسم الذي يعجبه والذي يتوافق مع روحهم ، كما يمكنهم تقديم التحسس الذكي أيضًا.

@ SteveL-MSFT - أعتقد أن "pwsh" ستبقى على الأرجح مع الناس على ما يرام.

ومع ذلك ، ذكرتم أيها الأشخاص حادث curl كسبب لعدم استخدام كلمة "psh". أجد أن هذا يمثل مشكلة لأنك ببساطة تضع نفسك (نحن) في زاوية من خلال رسم أوجه التشابه بعيدًا جدًا!

يعد "curl" أحد أكثر الأدوات استخدامًا في عالم Linux. من الحكمة توخي الحذر الشديد لعدم تكرار "curl" snafu للبرامج "الحية" / "النشطة" ولكن لماذا يجب توسيع هذه المجاملة لتشمل البرامج المهجورة ؟

دع حادثة الضفيرة تعلمنا درسًا ، وليس الدرس الخطأ.

دعماً لنصيحةAdilHindistan ، اسمحوا لي أن أكرر التحليل الدقيق لـ

سأصوت لصالح psh - المشروع الذي استشهدت به على أنه تصادم لم يشهد إطلاقًا منذ 10 سنوات ، ولم يكن أبدًا في حزم إعادة الشراء بأي حال.

بمعنى آخر: حقيقة أن psh لم يكن على ما يبدو جزءًا من مستودعات الحزم (الرئيسية) (لقد تحققت فقط من apt (Ubuntu ، Debian) و yum (Fedora، RedHat)) - على سبيل المثال ، كان دائمًا منتجًا متخصصًا - ويمكن اعتباره مهجورًا لجميع المقاصد والأغراض بعد أكثر من 10 سنوات من عدم النشاط مما يجعله مرشحًا مثاليًا.

(على النقيض من ذلك ، فإن حقيقة أن posh لا تزال حزمة متاحة عبر apt ، بغض النظر عن حالة الصيانة الخاصة بها ، في رأيي.)

أوافق على النقاط التي تم التوصل إليها بأن psh هو خيار قابل للتطبيق ويجب النظر فيه

بالنسبة لكيفية _implement_ الاسم المختصر كرابط رمزي / كعب روتين ، بافتراض أن اسم الملف التنفيذي الفعلي سيبقى powershell[.exe] :

لنفترض أن الاسم المختصر سيكون ، على سبيل المثال ، psh (فقط لاختيار أحد الأسماء التي تمت مناقشتها ، بشكل عشوائي).

منصات يونكس

سيتعين على المثبت _ بالإضافة إلى ذلك_ القيام بما يكافئ ما يلي:

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

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

بمعنى آخر: قم بإنشاء ارتباط رمزي إضافي باسم psh والذي يشير ببساطة إلى الارتباط الرمزي الحالي powershell .

في نظام macOS ، قد ينتج عن ذلك سلسلة ارتباط رمزي مثل ما يلي:

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

وبالتالي ، فإن أي غلاف اتصال ، بما في ذلك PS Core نفسه ، سيكون قادرًا على استخدام psh كبديل أقصر لـ powershell .

شبابيك

على Windows ، الأمور أكثر تعقيدًا:

  • على الأقل اعتبارًا من الإصدار التجريبي 7 ، من _outside_ لـ PS _Core_ ، يكون فقط _Windows_ PowerShell موجودًا في PATH.
  • يجب أن يكون هناك اختصارات مميزة لـ Windows PowerShell مقابل Powershell Core للاستدعاء المستهدف: psh لـ PS Core و wpsh لنظام التشغيل Windows PS (يجب أن يكون هذا الاسم جيدًا أيضًا ، لأنه ليس قيد الاستخدام أيضًا في إعادة الشراء apt و yum ).

نظام التشغيل Windows PS

_Windows_ يمكن أن يحدد PS الروابط الرمزية - واحد لكل من $env:SystemRoot\System32\PowerShell\v1.0 (64 بت) و $env:SystemRoot\SysWOW64\PowerShell\v1.0 (32 بت) على النحو التالي:

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

بفضل $PSHOME في $PATH ، يمكن لأي قشرة ، بما في ذلك PS Core و Windows PS نفسها ، استدعاء Window PS كـ wpsh .

PS كور

يمكن وضع ملف الاختزال في حد ذاته في دليل موجود في PATH افتراضيًا ، مما يسمح بالاستدعاء حتى بدون وجود PS Core $PSHOME نفسه في PATH.

لا تنطبق اعتبارات 64 بت مقابل 32 بت (PS Core هو 64 بت فقط) ، لذلك يمكن اختيار $env:SystemRoot (عادةً C:\Windows ).

لسوء الحظ ، فإن استخدام _الروابط الرمزية_ هو على الأقل _لا _ خيار حاليًا ، لأن PowerShell Core يرفض التشغيل عند استدعائه عبر ارتباط رمزي له اسم مختلف:

من جلسة 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"

فشل استدعاء psh.exe كما يلي:

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.

إذا كان أي شخص يعرف طريقة للتغلب على هذا ، فأخبرنا بذلك.

(من الغريب ، إذا قمت بتعريف الارتباط الرمزي _ بدون ملحق _ - psh بدلاً من psh.exe - ينجح الاستدعاء من حيث المبدأ ، ولكن لا يتم تمرير أي معلمات.)

الحل البديل هو استخدام ملف دفعي كعب روتين (مرة أخرى ، قم بتشغيله من جلسة _elevated_ PowerShell):

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

يمكن لأي غلاف اتصال ، بما في ذلك Windows PowerShell و PS Core نفسه ، استخدام psh كاختصار لاستدعاء PS Core.

@ mklement0 كنت أفكر في نفس الشيء فيما يتعلق باستخدام powershell ).

يبدو أن الشيء الأكثر وضوحًا هو أن powershell هو الرابط الأساسي و psh هو الرابط ، لكنني كنت أفكر ربما يجب أن نقلب هذا الأمر بحيث يكون psh هو اسم exe و powershell هو الرابط. السبب هو أنه مع وجود جمهور جديد على غير Windows ولتمييزه عن Windows PowerShell ، يبدو أن التفضيل هو أن يستخدم الأشخاص psh للإشارة إلى PowerShell Core و powershell متوفر فقط لـ متوافق مع التطبيق (ربما ذاكرة عضلية لبعض الأشخاص أثناء انتقالهم). ومع ذلك ، أعلم أن هذه الفكرة لم يتم بيعها للجميع.

إذا رأينا أن psh شائع جدًا ، فيمكننا تبديل powershell و psh .

لإضافة الاسم المستعار قد يكون من المفيد https://stackoverflow.com/questions/2016722/one-dll-multiple-projects

لا تحب فكرة أن يصبح psh exe و PowerShell يتم تحويله إلى رابط. أنت تتخلص من 10 سنوات من ولاء الجمهور من أجل سهولة الاستخدام المحتملة على الأجهزة التي لا تعمل بنظام Windows حيث يكون حجم الجمهور غير معروف (على الأقل في البداية) من المحتمل أن يكون صغيرًا.

كلما رأيت أكثر من PowerShell v6 ، يبدو أنه يتم تجاهل مستخدمي Windows الحاليين في محاولة لإقناع مستخدمي Windows من غير مستخدمي PowerShell. أين تنتهي هذه العملية؟

RichardSiddaway ليس لدي انطباع بأن فريق PowerShell يتجاهل مستخدمي Windows على الإطلاق وأنا مستخدم Windows بشكل أساسي مع Windows Phone. كنت أنا الشخص الذي طلب هذا ليس من بعض مفهوم Linux ، ولكن من تحدياتي الخاصة بالابتعاد عن cmd إلى powerhell.

الحقيقة هي أن Windows PowerShell هو منتج ناضج ولكنه لم يتم إنشاؤه مع وضع الأنظمة الأساسية في الاعتبار. لإنجاح هذا العمل ، يجب أن يكون الاستثمار الأولي أعلى نحو المنصة المشتركة في البداية مما سيفيد كلا العالمين. الأمور ستنتهي خلال الإصدارات القليلة القادمة.

بخلاف الأسماء المستعارة والأسماء المستعارة للمعلمات ، لا أرى الكثير مما يؤثر سلبًا على مستخدمي Windows. إذا كانت هناك مشكلة معينة تثير القلق ، فالرجاء طرحها في هذه القضايا. المناقشة مفيدة للمنصة ونحن بحاجة للتأكد من عدم فقد أي شيء مميز حول PowerShell أثناء الانتقال.

@ SteveL-MSFT هل يمكنك تقديم المزيد من أسبابك لجعل psh أو pwsh يصبح .exe؟ إذا كانت هناك فوائد جنيتها ، فقد أكون أكثر ميلًا لتفضيلها.

أوتش في الملف الدفعي. على أي حال لجعل الارتباط الرمزي يعمل على Windows؟ أفضل أن أحصل على طبقة أخرى من خلال cmd.

@ dragonwolf83 أتخيل بمرور الوقت أن الناس يفضلون كتابة 3 أو 4 أحرف مقابل 10 ، لذلك على الرغم من أننا ندعم دائمًا كتابة powershell ، يبدو أنه من منظور طويل المدى ، يجب علينا تحسين الإصدار الأقصر

تعليقاتك حول Windows PowerShell موجودة على الفور.

@ dragonwolf83 :

أوتش في الملف الدفعي. هل من طريقة لجعل الارتباط الرمزي يعمل على Windows؟

اسمعك. للأسف ، لم يلق صراخي من أجل المساعدة سوى القليل من الاهتمام حتى الآن.

يبلغ حجم powerhell.exe 78 كيلو بايت ، فهل سيكون من السيئ جدًا أن يكون لديك 78 كيلو بايت آخر مثل psh.exe ...

قد يكون وجود ملفين تنفيذيين مكررين حلاً سهلاً ولكن قد يؤدي أيضًا إلى حدوث ارتباك حيث يمكنني أن أتخيل أن المستخدمين سيبدأون في التفكير فيما إذا كان هناك فرق بين 2. إذا كنت جديدًا على PowerShell ورأيت مثالين مختلفين (على سبيل المثال في SO) أظهر كيفية الاتصال / فتح PowerShell ، ثم سأبدأ فورًا في التساؤل عن المثال الذي يجب أن أختاره لأنني سأفترض أن هناك فرقًا ...

IMO هذا سخيف. cmd.exe مخفي إلى حد كبير في Windows 10 1703 ، لذلك نادراً ما تقوم بتشغيل powerhell.exe من الغلاف القديم.

لست من أشد المعجبين بهذا - كم مرة تكتب powershell تصبح مشكلة؟ (أيضًا ، إجمالي مشكلة bikeshed ؛)) في Windows 10 و Server 2016 ، عيّن "استبدال موجه الأوامر بـ Windows PowerShell عندما أنقر بزر الماوس الأيمن على قائمة ابدأ أو اضغط على Win + X" وهو قصير مثل Win + x أو i أو في Linux ، أضف اسمًا مستعارًا إلى غلافك الحالي بالاسم الذي تفضله.

ومع ذلك ، ماذا عن:

  • ps1 - بعد امتداد الملف على Windows ، قصير ، سهل الكتابة ، لا يُنسى
  • psps - قصير وقابل للطباعة ، لكنه يترك نفسه مفتوحًا للغة العامية "النموذجية M $ bloat"
  • ips - كما لو كان لـ Invoke-PowerShell ، لا يبدو أنه حزمة في RedHat أو مستودعات Ubuntu ولا يظهر yum provides "*/ips" أي ثنائيات تتعارض معها في فحص سريع

دعني أسألها بهذه الطريقة: هل لدى أي شخص سبب قوي لعدم الذهاب مع pwsh؟

إنه قبيح وغير قابل للنطق ، ويتطلب المزيد من المقاطع لقولها من "بوويرشيل" نفسها ، وليس من السهل كتابتها بشكل خاص ، ويبدو أنها مشتقة من pwnd / pwnt عبر الإنترنت.

إذا كان لدينا قريبًا PowerShell باعتباره الغلاف الافتراضي على Windows ، فإن اسم الملف (الطول) يصبح غير مهم.

PowerShell Core هو مشروع محمول - علينا التفكير في Unix أيضًا.

ناقشت @ PowerShell / بوويرشيل-جنة هذا وأين وصلنا هو أن يكون لدينا ثنائي PSCore6 يسمى فقط pwsh بدون اختصار / اسم مستعار إضافي لـ powershell . تتمثل الفائدة في توضيحها دون غموض على Windows سواء كنت تستخدم Windows PowerShell أو PowerShell Core. في غير أنظمة تشغيل Windows ، يكون الكتابة أقصر وأكثر اتساقًا مع تسمية shell الأخرى. بناءً على ملاحظات العملاء ، يمكننا دائمًا إضافة رابط / اختصار / اسم مستعار powershell في المستقبل.

تصويتي هو psh.exe.

jandrusk تم دمج العلاقات العامة بالفعل أمس ، لذلك سيكون pwsh.exe. قام جيفري بالتغريد بالفعل حول هذا هنا .

تحيا كلمة المرور الجديدة / كل أسبوع / بوليس شيل!

كان تصويتي لتركه وشأنه.

فكيف نحن نلفظ pwsh؟

pwsh
ص
ص
بوه

نأمل شيء أفضل من هؤلاء

jonathanmedd لقد كنت أستخدم pwish مثل wish مع p .

بالنظر إلى أن _pwsh_ هو اختصار تكراري (مشابه لـ _GNU_) - من فضلك ، لماذا pwSH؟ - أقترح "بويش" ، مثل الأرنب اللطيف بقول "من فضلك".

تمزح جانبا:

  • بينما أعتقد شخصيًا أن الاستقرار على pwsh كان أمرًا مؤسفًا ، أفترض أننا سنعتاد على ذلك قريبًا ولن نفكر فيه مرة أخرى.

  • بالنسبة للنطق: أنا شخصياً لا أرى الحاجة إلى واحد ، بالنظر إلى أن الاسم الكامل قصير بما يكفي ، وسيكون التعيين واضحًا لأي شخص يعيش في عالم PowerShell. (مثال من عالم Unix: يُنطق zsh ما يبدو zee shell أو zed shell ، وليس كمقطع لفظي واحد).

P-Dub Shell ؟

P Double U Shell المؤلم قول P Double U S H . عدد المقاطع أكثر من PowerShell لكنك ربما تريد تمييز PowerShell من pwsh . تمامًا كما يتميز bash عن Bourne-Again Shell .

ربما تريد تمييز PowerShell عن pwsh

فيما يتعلق بالأسماء الرسمية الكاملة ، فهي _PowerShell Core_ مقابل _Windows PowerShell_ - _PowerShell_ في حد ذاتها يمكن أن تشير إلى أي إصدار.
إذا لم يكن الأمر واضحًا من السياق ، فإن إضافة المصنف المناسب سوف يزيل الغموض - وربما لن تكون هناك حاجة إليه كثيرًا (على سبيل المثال ، في سياق Unix الخالص).

على المدى الطويل ، نظرًا لأن PowerShell Core هو الإصدار الذي يعمل على "جميع" الأنظمة الأساسية ، فلن أتفاجأ إذا أصبح _PowerShell_ اختصارًا شائعًا وغير رسمي لـ _PowerShell Core_ (الافتراضي "PowerShell) ، مع مؤهل - _Windows_ - تستخدم فقط للإشارة إلى إصدار Windows.

جانبا:

تمامًا كما تتميز bash عن Bourne-Again Shell.

bash _is_ _Bourne-Again SHell_ - يتناقض مع سابقتها ، _Bourne SHell_ ( sh ،
قبل أن تقوم POSIX بتوحيد اللغة).

@ mklement0 أتحدث عن تمييز pwsh الثنائي من PowerShell اللغة / الصدف. عدم التمييز بين تطبيقات / منصات PowerShell المختلفة. تمامًا مثل استخدام bash لتمييز الثنائي عن Bourn-Again SHell . إنها قابلة للتبديل ، نعم ، ولكن عندما تحتاج إلى التمييز بين 2 ، فأنت بحاجة إلى طريقة واضحة لنطق pwsh .

دفع: ابتسم:

لذلك ربما:

p shell أو p w shell

markekraus :

آه ، أرى ، شكرًا للتوضيح.

إذا كنت تريد نقل الاسم _exact_ للثنائي ، فلن يساعدك نطق أقل من _تهجئة _ الاسم (كان من الممكن أن يعمل فقط مع شيء مثل posh ).

وبالتالي ، فإن الإشارة إلى ملف _PowerShell binary / القابل للتنفيذ_ يجب أن يعمل مع كل من هم على دراية بالفعل ، وبالنسبة للآخرين سيتعين عليك توضيح ذلك على أي حال.

إذا كنت تريد نقل الاسم الدقيق للثنائي ، فلن يساعدك نطق أقل من تهجئة الاسم.

سيتعين علينا أن نتفق على الاختلاف على ذلك 😃.

أتفهم رغبتك في أن يعمل ذلك - كما هو الحال مع "bash" و "posh" ، على سبيل المثال - ولكن كما تشهد معاناتك أعلاه ، فإنه لا يعمل مع "pwsh" - والذي من العدل أن نفترض عالقون الآن.

لا يعمل مع "pwsh"

حسنًا ، ليس مع هذا الموقف لا! 😉 لقد كنت أسميها pwish وربما سأستمر في ذلك. لكني أقوم فقط بإنشاء حوار لمعرفة ما إذا كان الآخرون يأتون بشيء آخر. push هو خيار جيد بالنظر إلى النطق w في بعض اللغات. pwsh غير قابل للإصلاح تمامًا ، IMO. ربما يستقر الجميع على p w s h . ولكن من السابق لأوانه أن نقول "انتهينا من هنا" وننظر في الأمر ، IMO.

:)

أنت على حق.

أعتقد أنني كنت أركز كثيرًا على جانب نقل _التهجئة الدقيقة_ إلى شخص ليس على دراية بـ PowerShell حتى الآن بدلاً من الاسم المختصر الذي تم إنشاؤه _ بموجب اتفاقية _ لأولئك الذين يعرفون بالفعل (الذين يعرفون بالفعل كيفية تعيين هذا الاسم المختصر إلى pwsh ).

ماذا عن MSPosh. أقصر من PowerShell.exe ويتبع المعايير ، بينما يتضاعف أيضًا كاسم ممتع لـ PowerShell Hero ؟

@ 1RedOne سيكون بطل PowerShell / الصورة الرمزية دائمًا PoSH-Chan في my

يبدو أن فريق PWSH كان يسارع إلى تغيير اسمه. :-)

أصوت ل pscmd.exe

عند كتابة cmd في windows ، يجب أن يظهر بالفعل! وهو في الواقع يستبدل cmd ...

إذا كان هذا يتعلق بذاكرة العضلات ، فلنصلح هذه المشكلة ..

إذا كان من أجل المتعة فقط العثور عليه اسمًا جديدًا رائعًا ، فيجب أن يكون pscore.exe ، لأن هذا ما هو عليه.

فقط سنتان.

pwsh ، قذيفة wwrld fwremwst Wbject-Wriented. أنا أطلب أوامر cmdlets جديدة لمتابعة هذا النمط:

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

؛)

-

نطق المرجع ، ماذا عن كلمة " powsh " التي

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.

أظن أن رسالة الخطأ هذه مرتبطة بهذه المشكلة. كيف يمكنني حل هذه المشكلة؟

بقدر ما يتعلق الأمر بمسألة الاسم الفعلي ، أصوت لـ pwsh ، لأن Bash هو Bourne Again SHell.

أصوت لصالح PWSH. وسأعلنها على أنها دفع.
لقد رأيت الكثير في المجتمع يستخدمون الفخامة ، لذلك سيكون هذا هو خياري الثاني ، على الرغم من أنني أعتقد أن MS قد تحاول الابتعاد عن وصفها بأنها فاخرة.

أصوت ل pwr !

DaleMitchell كيف حصلت على هذا الخطأ؟ إذا قمت ببنائه بنفسك ، فهل أعدت تحميل build.psm1؟

لقد رأيت الكثير في المجتمع الذين يستخدمون الفخامة

https://github.com/dahlbyk/posh-git على سبيل المثال.

يتم نطق pwsh posh . SaschaNaz POSH موجود بالفعل

هل فاتني تصويت @ PowerShell / بوويرشيل-لجنة على كيفية نطقها؟ :)

اعتقدت أنه ربما يمكننا نطقه Microsoft Next Generation Command Line Interface Shell Experience 2017 ، أو ربما فقط ، كما تعلم ، powershell .

لن تستخدمه حتى يتم إصدار Microsoft Next Generation Command Line Interface Shell Experience 2017 Service Pack 2 ...

POSH موجود بالفعل كصدفة للأسف

نعم ، سيكون الأمر محيرًا للغاية عندما يريد المستخدم الفخامة ، ويحاول sudo apt install posh ثم يحصل على غلاف مختلف تمامًا.

راجع للشغل ، poh-sh أو pah-sh ؟ بالتأكيد هذا الأخير؟

اسم الحزمة لا يزال بوويرشيل ، لا تغيير هناك:

sudo apt install powershell

منشور سريع (معبر) عن حالة المناقشة:

  • بالنسبة إلى _file name of the binary_: تم اتخاذ القرار ونشره: pwsh هو كذلك.

  • بالنسبة إلى النطق_:

    • لا يوجد أي شيء يمكنه نقل التهجئة الدقيقة للثنائي إلى "غير المستهل" - لا يوجد خيار سوى توضيحه.

    • بالنسبة إلى _initiated_ ، يمكن القول إن "PowerShell" هو كل ما هو مطلوب ، حيث سيكون من الواضح عادةً من السياق ما إذا كان المرء يشير إلى _product_ أو _اسم ملف binary_ ( اهتمامmarkekraus ) ؛ إذا كان الأخير ، فإن البداية ستترجم ذلك تلقائيًا إلى pwsh في رؤوسهم.
      أضف "Core" و "Windows" لإزالة الغموض ، إذا لزم الأمر.

    • وغني عن القول ، فإن السعي الحماسي للحصول على لقب غير رسمي من مقطع واحد سيستمر ...
      نظرًا لأن عملية رسم الخرائط الذهنية على pwsh مطلوبة في أي حال ، فقد تشهد أيضًا تلك المنشأة بشكل غير رسمي مثل "Posh" استخدامًا مستمرًا.

في الأيام الخوالي عندما استخدمنا MKS Toolkit لدعم البرامج النصية عبر الأنظمة الأساسية ، استخدمنا ksh.exe لكننا أطلقنا عليها دائمًا KornShell . لذلك على الرغم من أن الثنائي هو pwsh ، سأطلق عليه PowerShell.

أعتقد أن هذه المسألة برمتها "كيف تنطق الاسم الثنائي" كان من الممكن تجنبها إذا كان الاسم الثنائي pwrsh لكن تلك السفينة أبحرت.

بالعودة إلى "الأيام الخوالي" (هل تُحسب قبل 15 عامًا؟) أطلق فريقي على الثنائي اسم "kish" ، وكان "KornShell" للمناقشة العامة للقشرة.

مثال:

"اكتب ooser bin kish ثم اضغط على Enter. أنت الآن في KornShell"

هل قبل 15 عاما العد؟

إنه نسبي نوعًا ما إلى الشخص الذي أعتقده. بدأت تجربتي مع KornShell منذ 24 عامًا. قبل 15 عامًا ، كانت ابنتي طفلة صغيرة ولا يبدو أن ذلك منذ فترة طويلة. Yikes - الوقت يمضي.

أطلق فريقي على الثنائي اسم "كيش"

لا أستطيع أن أقول أنني سمعت أنه تم نطقه بهذه الطريقة. :-)

لا أستطيع أن أقول أنني سمعت أنه تم نطقه بهذه الطريقة. :-)

نعم. خارج هذا الفريق كان دائمًا "ksh" أو "KornShell". ولكن هذا نوع من النقطة: مناقشة كيفية نطق الناس للحروف "pwsh" (غياب "PowerShell") ومعرفة ما إذا كان هناك أي إجماع. إنها ليست مناقشة جادة تمامًا ولن يكون أي شيء نطقًا رسميًا نظرًا لأنها كلمة لا يمكن نطقها (لا يوجد قصد من الفريق- push ). ولكن من الجائز أن يفوز مرشح مشهور وسنبدأ في سماعه في العروض التقديمية.

قبل العمل في Microsoft ، كنت أحد موظفي Unix ودائمًا ما اتصلت بـ ksh Korn Shell و csh C Shell. لا أتذكر أي شخص في تلك الأيام حاول نطقها ككلمات: P

هل يمكن لشخص ما أن يشرح بإيجاز سبب إجراء تغيير عاجل مثل هذا؟ أنا خارج الحلقة (من الواضح!) ، وكنت أتحدث مع متفاجئون إلى حد ما ، بالنظر إلى أن الروابط الرمزية شيء.

هل قراءتي التنشيطية لعملية المساهمة الآن. اعتقدت أن هذا سيتطلب RFC في البداية ، لكن يمكنني أن أرى كيف قد لا ينطبق ذلك. بعد ذلك ، أبحث في السياسة الخاصة بالتغييرات العاجلة (https://github.com/PowerShell/PowerShell/blob/master/docs/dev-process/breaking-change-contract.md). هل يمكنك التعليق على المجموعة التي وقع فيها هذا التغيير ، وما إلى ذلك؟

لا أحاول إثارة شيء تم تسويته بوضوح ، أريد فقط أن أكون قادرًا على التواصل بشكل فعال مع الآخرين المهتمين الذين لا يقرأون المواصفات والقضايا. شكر!

2 ج. هذا تغيير جذري كبير. هناك عدد كبير جدًا من ملفات الدُفعات الموجودة في إنهاء سيناريوهات الإنتاج تستخدم powerhell.exe لبدء البرامج النصية لـ PowerShell. أنا لست ضد تقديم أمر قصير إضافي لإطلاق نفس الملف القابل للتنفيذ ولكن إزالة "powerhell" سيؤدي إلى فوضى كبيرة. الرجاء تقديم طريقة لاستخدام كلا (الاسم المستعار أو أيًا كان)

RudolfHenning على عكس الإصدارات السابقة من Windows PowerShell ، سيعمل PowerShell Core جنبًا إلى جنب مع الإصدار الآخر من نفسه والإصدارات الأقدم من Windows PowerShell. يجب أن تكون هناك طريقة لاستدعاء كل من Windows PowerShell و PowerShell core من سطر الأوامر ومن البرامج النصية المجمعة دون الحاجة إلى استدعاء المسار الكامل لـ EXE المقصود أو دون المخاطرة بترتيب المسار مما أدى إلى استدعاء powershell.exe الخطأ الإصدار.

حتى بعد إصدار PowerShell Core 6.0 ، ستستمر الحاجة إلى استخدام Windows PowerShell (الإصدار 5.1 والإصدارات الأقل) للعديد من المهام التي تتمحور حول Windows حيث تتطلب العديد من الوحدات والبرامج النصية الرسمية والمجتمعية الوصول إلى كائنات CLR الكاملة غير المتوفرة في Core.

أيضًا ، من المرجح أن يحتاج أي شخص ينقل نصوصه من الإصدارات السابقة إلى الإصدار 6.0 إلى إجراء تعديلات نظرًا لوجود الكثير من التغييرات بين 5.1 و 6.0. نظرًا لأنه يلزم لمس الرمز على أي حال ، يمكن تبديل الدفعة إلى pwsh.exe من powershell.exe . إذا لم يتم نقل PowerShell Core ، فلن ينكسر أي شيء وستستمر البرامج النصية في العمل باستخدام powershell.exe باستخدام Windows PowerShell.

شكرا على الشرح.
نظرًا لأنني أستخدم كلاً من Windows وبعض أنظمة تشغيل Linux ، فإن توافق البرامج النصية الخاصة بي أمر مثير للقلق في بعض الأحيان - نعم أعرف أن مكتبات PowerShell على Linux لا تزال تجريبية تمامًا. لقد استثمرت بعض الوقت والجهد في إنشاء برامج نصية لأجهزة Linux الخاصة بي.
على أي حال ، استمر في القيام بالعمل الجيد!

يفترض عداء Powershell في TeamCity أن الملف القابل للتنفيذ يسمى powershell . نظرًا لعدم وجود Powershell 5 على Linux يسبب مشاكل في التوافق ، كان من المفترض أن تستمر حزمة Linux في إنشاء الرابط الرمزي powershell . كان هذا كسرًا غير ضروري.

ماذا ، هل وصلت في أبريل؟ هل سنقوم بإزالة أحرف العلة من الأوامر الخاصة بوويرشيل بعد ذلك؟ يجب أن تكون هذه مزحة.

البرامج النصية القديمة (عامل الإرساء) التي تستخدم "بوويرشيل-الأمر xxxx" لم تعد تعمل مع إصدار بيتا 9 الجديد ...

في انتظار العاصفة

هناك الكثير من الأسباب التي تدفعني إلى تغيير مفاجئ في المكان أو نقطة الدخول "الأكثر أهمية" ، لكن تقصير اسم الأمر بمقدار 6 بايت وجعله أقل قابلية للقراءة ليس من بينها ...
كم مرة في الماضي قررنا استخدام اسم أفضل / أطول داخل الكود لأن القراءة يمكن / يجب أن تكون أسهل ثم الكتابة ...

حضن بلدي 2cent
مع تحياتي
ويرنر

أحاول أن أفهم الغضب والفشل.

يشتكي الناس من أن الاسم الجديد يكسر الأشياء ، لكن PowerShell Core لا يزال في مرحلة تجريبية. IMO ، إذا كان شخص ما يستخدم تقنية بيتا في كود الإنتاج ، فإنهم يدعون إلى كارثة (أستخدم لغة مهذبة هنا). تتمثل طبيعة إصدارات ألفا وبيتا في كونها مليئة بالتغييرات العاجلة. ليس هناك وهم أن هذه ليست نسخة تجريبية. بيتا مخبوز في اسم الإصدار: 6.0.0-beta.9 .

لا يؤثر تغيير الاسم هذا على Windows PowerShell. لا ينبغي أن يكسر أي شيء تقوم به حاليًا في Windows. إذا كنت تقوم بأشياء في Linux ، فأنت بحاجة إلى الاعتراف بحقيقة أنك تستخدم إصدارًا تجريبيًا ، بدلاً من إلقاء اللوم على الإصدار التجريبي لكونه إصدارًا تجريبيًا. ضع في اعتبارك استخدام شيء آخر حتى يكون الإصدار الثابت هو RTM إذا لم تتمكن من التعامل مع التغييرات الفاصلة بين إصدارات بيتا.

أفهم أن الناس لا يحبون الاسم. لا يمكنك دائمًا الحصول على ما تريد. أنا شخصيا كرهت PowerShell.exe لأنه طويل ومحرج للكتابة. pwsh هو على الأقل عدد أحرف أقل بالنسبة لي لأخطأ. إذا نظرت إلى سلسلة المناقشة ، يمكنك أن ترى أنه تمت مناقشة العديد من الخيارات ، بعضها أسوأ بطريقة (IMO) من pwsh .

يسيء الناس فهم هذا على أنه محاولة محرجة للاندماج مع أطفال Linux الرائعين ، عندما يكون أحد الدوافع الأساسية لاسم ثنائي جديد مرتبطًا بـ Windows. نعم ، تم اختيار اسم linux-y ، لكن خمن ماذا؟ PowerShell هو الآن مواطن * لا شىء أيضًا. أعتقد أن الوقت قد حان لكي يعتاد الناس على هذه الحقيقة. أحد أهداف Core هو قابلية النقل عبر الأنظمة الأساسية ، لذا نعم ، يمكن اتخاذ القرارات مع وضع أكثر من Windows في الاعتبار.

لذلك هذا يستحق 2 سنتي.

أحد أهداف Core هو إمكانية النقل عبر الأنظمة الأساسية

يتمثل أحد أجزاء قابلية النقل عبر الأنظمة الأساسية في أن نفس الأوامر يجب أن تعمل على كلا النظامين الأساسيين إذا قاموا بنفس الشيء. قبل هذا التغيير ، كان بإمكاني تشغيل powershell بغض النظر عن نظام التشغيل الذي كنت أستخدمه والحصول على الشيء الصحيح. الآن لم يعد بإمكاني فعل ذلك.

إن صنع برنامج سهل الاستخدام يعني الاهتمام بشكل صحيح بملايين الأشياء الصغيرة. استخدام أسماء غريبة وغير بديهية يعمل عكس ذلك.

يمكنني تشغيل powershell بغض النظر عن نظام التشغيل الذي كنت أستخدمه والحصول على الشيء الصحيح. الآن لم يعد بإمكاني فعل ذلك.

غير دقيق. يمكنك تشغيل powershell على windows والحصول على Windows PowerShell ثم تشغيل powersehll على لينكس والحصول على PowerShell Core. الآن يمكنك تشغيل pwsh على windows أو linux والحصول على PowerShell Core. لذلك نحن الآن في الحالة التي تريدها. حيث كنا كما كان من قبل في حالة غير متسقة.

استخدام أسماء غريبة وغير بديهية يعمل عكس ذلك.

حسنًا ، من الواضح أنه غير محبوب عالميًا ، ولكن ... ما البديل الذي تقترحه؟ أرى كل شخص يتأمل الاسم ولكن لا توجد بدائل للمشكلة الأساسية التي يعالجها تغيير الاسم هذا. كما قلت "لا يمكنك دائمًا الحصول على ما تريد"

بغض النظر عن الاسم الذي تم اختياره ، لن يكون الناس سعداء.

تضمين التغريدة

  • نحن نعلم أن هذا إصدار تجريبي - لا بأس في كسر التغييرات!
  • أنا معجب كبير بتحسين PS على * nix لأنه يساعدني على نقل معرفتي (PS) من Windows إلى * nix

كانت ملاحظاتي حول قابلية الاستخدام ومخاوف العاصفة التي تفرض بعض إعادة التسمية مرة أخرى والمناقشات التي لا تنتهي.

يمكنك تشغيل بوويرشيل على ويندوز والحصول على ويندوز بوويرشيل ثم تشغيل بوويرسهيل على لينكس والحصول على بوويرشيل كور. الآن يمكنك تشغيل pwsh على windows أو linux والحصول على PowerShell Core. لذلك نحن الآن في الحالة التي تريدها. حيث كنا كما كان من قبل في حالة غير متسقة.

يعد الفصل بين Windows و Core بالفعل سببًا أفضل لإعادة التسمية ، ثم "إنشاء اسم أقصر"!

أقترح إجراء اتصالات أكثر وضوحًا حول ذلك (عنوان الإصدار ، ملاحظات الإصدار ، إلخ)
لقد قرأت أول 2-3 صفحات من هذه المشكلة وكان النقاش حول الطول فقط ...

ملاحظات أخرى:
في الأسابيع الماضية ، قمت بالكثير من الترميز باستخدام PS-Core على Docker و * nix
أنا أحب ذلك ولكني بحاجة إلى بعض التلميع.
فكرة / اقتراح:
إذا تم تغيير الاسم من Powershell إلى pwsh ، فلماذا لا يتم تغيير الإصدار من 6.0 إلى 1.0 (نفس المناقشة مثل التحويل من ".Net 5.0" إلى "dotnet core 1.0
يشبه CORE بشكل أساسي الإصدار 1.0 الإصدار 6 ، خاصة على * nix !!

مع تحياتي
ويرنر

WernerMairl هناك مناقشة مفتوحة حول استخدام 1.0 بدلاً من 6.0.0 # 5165. يرجى الذهاب إلى هذا الموضوع والقراءة والتعليق.

أيضًا ، نظرًا لأنك كنت تستخدمه وواجهت أشياء تعتقد أنها بحاجة إلى تلميع ، يرجى التحقق من المشكلات المفتوحة لمعرفة ما إذا كانت تتناول ما واجهته. إذا كانت هناك مشكلة مفتوحة ، فقم بالتصويت عليها أو التعليق عليها ، وإذا لم يكن الأمر كذلك ، فيرجى فتح مشكلة جديدة حتى يمكن إصلاحها. يشارك العديد منا أعضاء المجتمع بنشاط في إصلاح المشكلات ذات الأولوية الأقل ، وقد قام فريق Microsoft بعمل رائع في التعامل مع المشكلات ذات الأولوية الأعلى والأكثر صعوبة. أيضًا ، لم يفت الأوان أبدًا لتصبح مساهمًا بنفسك!

فيما يتعلق بوصف المشكلة وتغيير الاتصال ، أوافق على أنه كان هناك مجال للتحسين في توصيل هذا التغيير ولماذا كان ضروريًا. يمكن أن تكون أدوار الأشخاص المختلفين في هذا الريبو مربكة بعض الشيء ، لكنني لست جزءًا من فريق PowerShell ، بل مجرد مساهم مجتمعي يتمتع بامتيازات الإشراف على المنتدى (بشكل أساسي). لا يمكنني التحدث باسم فريق PowerShell ، لكنني أظن أنهم يفهمون هذه الحقيقة بأنفسهم.

في دفاعهم ، هذا نوع من الصعب التواصل. يبدو أن غالبية الشكاوى تنبع من عدم فهم أوجه التشابه والاختلاف بين Windows PowerShell و PowerShell Core. من أجل توصيل هذا التغيير بشكل فعال ، كانوا سيحتاجون أيضًا إلى إعادة صياغة ما تم توضيحه في مقالة المدونة في 14 يوليو . حتى ذلك الحين ، لا يزال الناس يواجهون صعوبة في التنقل بين أوجه التشابه والاختلاف. أعتقد أنه سيحتاج إلى وصف مطول لسبب تغيير الاسم الذي لم يقرأه الكثيرون. أظن أن المشاعل والمذراة كانت ستأتي مهما حدث.

غير دقيق. يمكنك تشغيل بوويرشيل على ويندوز والحصول على ويندوز بوويرشيل ثم تشغيل بوويرسهيل على لينكس والحصول على بوويرشيل كور. الآن يمكنك تشغيل pwsh على windows أو linux والحصول على PowerShell Core. لذلك نحن الآن في الحالة التي تريدها. حيث كنا كما كان من قبل في حالة غير متسقة.

أنا أفهم ما تقصده لكنني أعارض أن هذا ليس ما أريده. هناك افتراض خفي ضمني في بياني: أتوقع أن يكون PowerShell و PowerShell Core متساويين تمامًا طالما أنني أستخدم ميزات مشتركة. حتى الآن ، استمر هذا دون مشاكل في جميع حالات الاستخدام الخاصة بي.

sandersaares أعتقد أن تجربتك ستكون واحدة من الحظ. بالتأكيد لا يتناسب مع تجربتي. كما أنني أعتقد أن هذا الافتراض خطير. هذه نسخة رئيسية بها الكثير من التغييرات التكسيرية الموثقة مع نظام أساسي مختلف تمامًا. لن يكون هذا مثل الإصدارات الرئيسية السابقة من PowerShell مع التوافق مع الإصدارات السابقة بنسبة 100٪ تقريبًا.

أرى أن بعض الأشخاص ما زالوا يفترضون خطأً أن تغيير الاسم القابل للتنفيذ كان في المقام الأول للحفظ عند الكتابة. أستطيع أن أرى كيف حصل الناس على هذا الانطباع منذ أن بدأت هذه المشكلة الأصلية التي تم استخدامها في العلاقات العامة بعنوان يطلب اسمًا أقصر.

أوافق على أنه يمكننا تحسين اتصالاتنا حيث لا ينبغي أن نتوقع من الجميع قراءة جميع التعليقات التي تضعها اللجنة على القرارات. لا سيما في قضية مثيرة للجدل مثل هذا حيث يضيع ملخص القرار بسهولة.

يبدو أيضًا أن هناك سوء فهم أساسي لماهية PowerShell Core 6 ، لا سيما فيما يتعلق بـ Windows PowerShell. لا يزال Windows PowerShell 5.1 وسيصبح الإصدار المضمن من PowerShell على Windows. يواصل فريقي أيضًا دعمه حسب الحاجة. نتوقع تمامًا أن يستمر العملاء في الاعتماد على Windows PowerShell طالما احتاجوا إلى ذلك ، والذي قد يكون جيدًا على الأقل في السنوات العشر القادمة. أعتقد أنه حدث مؤخرًا فقط عندما تجاوزت تنزيلات WMF5.1 تنزيلات WMF4.0.

PowerShell Core 6 هو التطور التالي لـ PowerShell حيث لا يقتصر الأمر على الأنظمة الأساسية المشتركة فحسب ، بل أيضًا مفتوح المصدر. كما لاحظ markekraus ، إنه تغيير رئيسي في الإصدار أتاح لنا مزيدًا من المرونة في قبول التغييرات العاجلة التي لن powershell . سألاحظ هنا فقط أن مناقشة 6.0 مقابل 1.0 حدثت بالفعل قبل وقت طويل من طرحنا للجمهور ومن غير المرجح أن يُعاد فتحها.

@ SteveL-MSFT سيكون من الجيد نشر مدونة حول تغيير الاسم. يمكن أن يغطي المحرك الرئيسي لسبب تغيير الاسم مع مثال واضح للمشكلة على Windows. سيكون من الجيد أيضًا تغطية سبب عدم إجراء الفخامة والرشاقة أيضًا.

ربما قم بإعداد "بوويرشيل" كاسم مستعار لـ pwsh أثناء فك الحزمة + التثبيت. لقد أدى هذا للتو إلى كسر تصميم كنت أعمل عليه لبضعة أيام حتى تعقبت هذه المشكلة.

تحرير: على لينكس

يحتوي markekraus على يوضح ماذا وأسبابه :

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

رأيت اليوم أول استخدام لـ pwsh على SO هنا على الرغم من أنني أشك في أن الشخص يعرف شيئًا عن هذا الموضوع ...

هل يمكننا الحصول على حكم رسمي بشأن نطق pwsh ؟ تتضمن مواصفات PNG نطقًا في القسم 1. وقد توفر أيضًا طريقة نطق لـ PowerShell ؛ لا تريد وضع SCSI "scuzzy" / "مثير" آخر.

يبدو لي "poosh".

apjanke ، النطق المقبول عمومًا لـ pwsh هو posh

يعمل لدي. شكرا للتأكيد الرسمي!

أما بالنسبة للنطق البديل: [1]

  • _ بيش بوش! _

  • _Poppyposh! _

  • _ The Shell المعروف سابقًا باسم PowerShell_ (_TSFKAP_ باللغة الجورجية )

  • _ The Shell التي لا تجرؤ على النطق باسمها (لأن اسم الملف التنفيذي الخاص بها لا يُنطق به) _ (مفضل من قبل المتحدثين الويلزيين ).


[1] [محاكاة ساخرة.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات