cmder Cmder.bat分析学习

0x00 前言

想通过修改cmder来弄一个自己的脚本工具箱,所以就要先对cmder的源码进行一个简单的分析,正好之前的shell没有进行系统的学习,只能看一个大概,希望可以通过分析学到更多的内容

下文所有的演示均放在
https://github.com/HLHai/csdn_blog/tree/master/cmder_Analysis 仓库中

0x01 cmder分析

1.准备工作

https://github.com/cmderdev/cmder

2.开始分析

首要目标就是对Cmder.bat进行分析。
在这里插入图片描述
我会在bat文件中进行详细注释,然后将注释后的文件放在github上的。并且练习的shell的demo也会放在github上。

按照之前的行文方式,会对源码进行一条一条仔细分析,懂即可跳过。

@echo off

@echo off表示执行了这条命令后关闭所有命令(包括本身这条命令)的回显

echo off意思就是以下执行的命令不显示在界面上。
@的意思是当前的命令不进行显示

dir
pause

依次放在

https://github.com/HLHai/csdn_blog/tree/master/cmder_Analysis/test/1 下面
eg:首先演示没有@echo off的bat
在这里插入图片描述
演示有echo off的

在这里插入图片描述

演示有@echo off的
在这里插入图片描述
接着来看下一句:

SET CMDER_ROOT=%~dp0

这里的set 其实就可以理解为是一个变量赋值的过程呗。

然后就是%~dp0的意思就是说获取当前的一个路径。

这里写一个demo进行下测试

https://github.com/HLHai/csdn_blog/tree/master/cmder_Analysis/test/2
在这里插入图片描述
这里还有一个需要注意的地方就是 %%包裹起来的被识别为变量,联想一下PHP,很好理解。

接着来看下一句

@if "%CMDER_ROOT:~-1%" == "\" SET CMDER_ROOT=%CMDER_ROOT:~0,-1%

这一句的if很简单,肉眼看到的语法就是 if 判断语句 执行语句

然后%CMDER_ROOT:~-1%这一句的语法就是类似于python的切片操作

这里的@感觉必要性不是很强

这里用一个小例子来进行练习
https://github.com/HLHai/csdn_blog/tree/master/cmder_Analysis/test/3
在这里插入图片描述
接着往下看

if exist "%~1" (
    start %~dp0/vendor/conemu-maximus5/ConEmu.exe /Icon "%CMDER_ROOT%\icons\cmder.ico" /Title Cmder /LoadCfgFile "%~1"
) else (
    start %~dp0/vendor/conemu-maximus5/ConEmu.exe /Icon "%CMDER_ROOT%\icons\cmder.ico" /Title Cmder /LoadCfgFile "%CMDER_ROOT%\config\ConEmu.xml"
)

这里的%~1的意思就是通过bat获取的参数

以下举例:

https://github.com/HLHai/csdn_blog/blob/master/cmder_Analysis/test/4/1.bat
在这里插入图片描述

最后就是start,就是程序调起的意思,这里没有什么难度。

其实这个Cmder.bat的作用就是来调起整个程序

调起的目标就是vendor/conemu-maximus5/ConEmu.exe这个软件,实际上软件也是可以直接用来替换cmd的。并且这里通过cmder.ico进行了icon的设置的设置。

实际上之后就可以对和这个ConEmu以及xml的设置文件进行分析。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王嘟嘟_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值