如果我通过 <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
我启动了内置复合任务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 首次启动终端时,弹出以下警告。
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.exe
set 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 附带的版本中。
有关的: