從 ConEmu 命令提示字元執行 powershell 沒有任何作用

從 ConEmu 命令提示字元執行 powershell 沒有任何作用

如果我在 Win 10 中透過 <Win 鍵> 開啟常規命令提示符,cmd並在提示符處鍵入powershell,我會看到 PowerShell 命令提示字元。

但是,如果我在 ConEmu(來自 PortableApps 的 v.18.06.26 [32])中收到 Windows 命令提示符,編輯:更新到 v21.04.22(預覽版)),然後我輸入powershell,它什麼也沒做。

所以我嘗試在ConEmu中設定任務,並設定一個PowerShell任務,就像我使用提示一樣cmd(我實際上使用了內建任務)。然後,當啟動該任務時,我會看到一個僅包含訊息的選項卡Press Enter or Esc to exit...(並且我不知道誰負責該訊息)。

要在 ConEmu 中獲得 powershell 提示符,我需要做什麼特別的事情嗎?

筆記:

  1. 在更新過程中,我猜是安裝後出現了一個窗口,其中包含與 7-zip 相關的錯誤訊息。我失去了那個窗口,但 ConEmu 工作得「很好」。
  2. 新版本的應用程式圖標更改為
    在此輸入影像描述
    但 PortableApps 啟動器仍然在工具提示中顯示舊圖示和版本
    在此輸入影像描述
  3. 我的系統中有另一個 ConEmu(直到今天我才知道),它與 GitExtensions 一起提供。那是 v20.07.13,我在這裡看到的也是一樣的。
    在此輸入影像描述

答案1

我啟動了內建複合任務Shells::cmd 64/32,定義如下

> "%windir%\system32\cmd.exe" /k ""%ConEmuBaseDir%\CmdInit.cmd" & echo This is Native cmd.exe"

"%windir%\syswow64\cmd.exe" /k ""%ConEmuBaseDir%\CmdInit.cmd" & echo This is 32 bit cmd.exe -new_console:s50V"

它們之間的區別是(透過稍後將它們作為單獨的 shell 啟動來確認):

Task    Version*1     "Sensitive"       Warning at
                     to powershell?     launching*2
Top      AMD64      No, as in Fig. 1        No
Bottom    x86         Yes (normal)      As in Fig. 2

*1 透過 確認echo %PROCESSOR_ARCHITECTURE%,其輸出列於表中。

*2 首次啟動終端時,會彈出以下警告。

圖。 在此輸入影像描述

圖2 在此輸入影像描述

然後我檢查了這是否是一個與 windows C:\Windows\System32\cmd.exeC:\Windows\SysWOW64\cmd.exe.但事實並非如此,因為從 <Win key> 對話方塊直接執行這兩個命令中的任何一個,然後powershell在命令提示字元中執行,都會導致「正常」行為。我還檢查了透過 <Win key> 啟動的所有快捷方式,這也導致了「正常」行為,稱為 C:\Windows\System32\cmd.exeConEmu 下的「失敗」變體。

我的結論是,這個問題在某種程度上是 ConEmu 特有的。在 ConEmu 下,任務定義

cmd -new_console:C:cmd.exe

或者

"%windir%\system32\cmd.exe" /k ""%ConEmuBaseDir%\CmdInit.cmd" & echo This is Native cmd.exe"

是問題的原因。

如果我輸入 <Win key> 並執行cmd -new_console:C:cmd.exe,然後powershell在命令提示字元中,我會得到「正常」行為。

如果我從 <Win key> 對話方塊運行 或 ,%windir%\syswow32\cmd.exe則在這些 shell 中返回%windir%\syswow64\cmd.exeset path

C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.2.180\windows\mpi\intel64\bin;C:\Program Files\Microsoft MPI\Bin\;C:\ProgramData\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\SIMULIA\Abaqus\Commands;C:\Program Files\PuTTY\;C:\ecl\macros\;C:\<myappsdir2>\utils\gtools;C:\<myappsdir2>\miktex\bin\x64

OTOH,set path從兩個 ConEmu shell 中的任何一個返回與上面相同的字串,前面加上

C:\<myappsdir1>\ConEmu\App\ConEmu\ConEmu\Scripts;C:\<myappsdir1>\ConEmu\App\ConEmu;C:\<myappsdir1>\ConEmu\App\ConEmu\ConEmu;

進一步挖掘可能會有用。我想知道為什麼沒有人會回報這個問題,這個問題顯然是在內建條件下的 PowerShell 任務中出現的,顯然是針對 PortableApps 版本以及 GitExtensions 附帶的版本。

有關的:

https://github.com/Maximus5/ConEmu/issues/965

相關內容