如何 运行 不使用 cmd.exe 的批次(比如 Cmder.exe?)

How to run batches NOT using cmd.exe (like Cmder.exe?)

我最近为 windows 安装了 cmder(或简称 'Commander')便携式控制台模拟器,并且非常喜欢它附带的功能。但是,您如何(如果有的话)运行 像使用 Windows 命令行那样批量处理它?

详情:

如果你写...

cd C:\test\
REM executeSomething.exe
Pause

... 到文本文件并将其另存为 .bat 文件 您可以做 只需双击该文件即可做几乎任何事情。我有一个工作流程,我通过批处理文件启动网络应用程序。有时此应用程序会在 Chrome、and sometimes it does not 时自动启动。在这种情况下,我将不得不手动将 URL 复制并粘贴到 Chrome。这是一个真正的痛苦。使用 cmder.exe 就容易多了,但我必须手动导航到一个文件夹并通过 Commander 手动启动应用程序,而无需 .bat file.

我尝试使用 cmder.exe 自动 运行 的功能只是更改文件夹并启动可执行文件,特别是 Jupyter Lab:

cd C:\jupyterlab\
jupyter lab
Pause

我尝试过各种方法:

@echo off
set CMDER_ROOT=C:\Cmder
start %CMDER_ROOT%\vendor\conemu-maximus5\ConEmu.exe /icon "%CMDER_ROOT%\cmder.exe" /title "Homestead VM" /loadcfgfile "%CMDER_ROOT%\config\ConEmu.xml" /cmd cmd /k "%CMDER_ROOT%\vendor\init.bat cd %CD% && %~1"

here所述,但没有成功。上面的示例 确实 启动了指挥官,但也引发了语法错误:

Current directory: C:\batches

Command to be executed: "C:\Windows\system32\cmd.exe" /k "C:\Cmder\vendor\init.bat cd C:\batches && "

很明显,由于我能够启动 Commander,所以我正在做一些事情,但我不确定如何编辑剩余的代码以 运行 必要的步骤。我确实意识到 /title "Homestead VM" 部分只是编辑了指挥官的头衔 window:

但我不知道其余的。

如果这是不可能的,我将不得不尝试重新关联 Control Panel > Default Programs > Associate a filetype 中的 .bat 个文件,但我希望避免这种情况。

感谢您的任何建议!

系统信息:

Windows 7, 64 bit
Commander v1.3.12

编辑 1: 我(失败)尝试遵循 Gerhard Barnard 的建议


我已将名为 please.cmd 的文件保存到 C:\Windows\System32,其中包含以下内容:

@echo off
if not defined CMDER_ROOT set "CMDER_ROOT=C:\Cmder"
start %CMDER_ROOT%\vendor\conemu-maximus5\ConEmu.exe /icon "%CMDER_ROOT%\cmder.exe" /title "Homestead VM" /loadcfgfile "%CMDER_ROOT%\config\ConEmu.xml" /cmd cmd /k "%CMDER_ROOT%\vendor\init.bat cd %CD% && %~1"

我还在 C:\batches 中保存了一个名为 SObatch.bat 的文件,其中包含以下内容:

if not defined myComs set myComs=0 && please %~0
@echo off
ping localhost
echo %userprofile%
pause

双击 SObatch.bat 后会打开一个 Windows 提示,ping 为 运行:

我只是缩小了 window 范围以省略真实世界的用户名。但是 ping 函数正在 运行 并返回通常的响应。

所以我想我好像还是弄坏了什么。

创建一个名为 please.cmd 的文件并将其以管理员身份保存到 C:\Windows\System32。然后它应该存在 c:\Windows\System32\please.cmd

@echo off
if not defined CMDER_ROOT set "CMDER_ROOT=C:\Cmder"
start %CMDER_ROOT%\vendor\conemu-maximus5\ConEmu.exe /icon "%CMDER_ROOT%\cmder.exe" /title "Homestead VM" /loadcfgfile "%CMDER_ROOT%\config\ConEmu.xml" /cmd cmd /k "%CMDER_ROOT%\vendor\init.bat cd %CD% && %*"

现在,当您创建批处理文件时,您需要在每个批处理文件的顶部进行一些更改。您需要将以下行添加到脚本的最顶部。

"%systemroot%\system32\please.cmd" "%~f0" && goto :eof

您也可以从 cmd please commandcmder shell 启动它。示例:

please ping localhost