如何 运行 不使用 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 command
从 cmder
shell 启动它。示例:
please ping localhost
我最近为 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 command
从 cmder
shell 启动它。示例:
please ping localhost