从 ConEmu 命令提示符执行 powershell 没有任何作用

从 ConEmu 命令提示符执行 powershell 没有任何作用

如果我通过 <Win 键> 在 Win 10 中打开常规命令提示符,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 首次启动终端时,弹出以下警告。

图。1 在此处输入图片描述

图 2 在此处输入图片描述

C:\Windows\System32\cmd.exe然后我检查了这是否是与 Windows和 本质上相关的问题 C:\Windows\SysWOW64\cmd.exe。结果不是,因为直接从 <Win 键> 对话框中执行这两个中的任何一个,然后powershell在命令提示符中执行,都会导致“正常”行为。我还检查了我通过 <Win 键> 启动的所有快捷方式,这也会导致“正常”行为,称为 C:\Windows\System32\cmd.exe,这是 ConEmu 下的“失败”变体。

我的结论是,这个问题在某种程度上是 ConEmu 特有的。在 ConEmu 下,任务定义

cmd -new_console:C:cmd.exe

或者

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

是问题的根源。

cmd -new_console:C:cmd.exe如果我输入 <Win 键>并powershell在命令提示符中执行,我会得到“正常”行为。

如果我从 <Win 键> 对话框中运行或,则%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

另一方面,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

相关内容