bat循环执行带参数_wxappUnpacker的bingo.bat脚本逐行解读

a3b987407e9c55af487026a1ebbc18ea.png

点击上方“蓝字”关注我们

之前发过一篇文章小程序反编译工具在windows系统下的调用脚本提到了Windows平台下的脚本,但是对脚本没有做详细说明。本文就是针对脚本做的讲解。对批处理感兴趣的可以了解下。

不会基础也没关系。下面我们进入正题。

脚本解读

第1行:

# WXAPPUNPACKER_PATH 项目路径

这段其实在 shell 文件中是注释内容,只不过在翻译这份脚本的时候是边查边写,复制过来没有修改,所以严格说这里属于翻译错误,正确的内容应该是如下:

:: WXAPPUNPACKER_PATH 项目路径

:: 代表表示该行是注释内容

第2行:

set WXAPPUNPACKER_PATH=%~dp0

『%~dp0』是啥?

  • “d”为Drive的缩写,即为驱动器,磁盘

  • “p”为Path缩写,即为路径,目录 所以『%~dp0』就表示获取当前路径。

这段的作用就是定义了名为『WXAPPUNPACKER_PATH』的变量并且值为当前目录。

第4行:

set FILE_FORMAT=wxapkg

定义名为『FILE_FORMAT』的变量,值为 wxapkg

第6~12行:

:wxappUnpacker_pkg 

echo "node %WXAPPUNPACKER_PATH%/wuWxapkg.js %fname%"

node %WXAPPUNPACKER_PATH%/wuWxapkg.js %2 %1

goto:eof

这里定义了一个名为『wxappUnpacker_pkg』的函数,打印即将执行的脚本:"node [当前路径]/wuWxapkg.js [文件名]" 执行脚本:node [当前路径]/wuWxapkg.js 参数2 参数1

第14~32行:

:wxappUnpacker 

set de_dir=%1

if "%de_dir%" == ""

set de_dir=%WXAPPUNPACKER_PATH%

echo %de_dir%

echo "for wxapkg in `find %de_dir% "*.${FILE_FORMAT}"`"

for %%fname in `/f %de_dir% -name "*.%FILE_FORMAT%"`

do

(call :wxappUnpacker_pkg %fname% %2)

goto:eof

这里定义了一个函数,作用是循环调用解包命令。
遗憾的是这里的脚本存在翻译错误:
对比下 shell 脚本来看看,定义一个de_dir变量赋值为第一个传入参数。然后

if [ -z "$1" ]
then
de_dir=`pwd`
fi

是要判断传入参数是否为空字符串,是空串就赋值为取当前目录的命令,所以这里就翻译错了,在MS-DOS下获取当前目录的命令为%cd%。再往下是循环查找wxapkg文件,同样也错了,正确的命令应该是
命令行环境:

for /f "delims=\" %i in ('dir /b /a-d /o-d "%cd%\*.%FILE_FORMAT%"') 
do
(call :wxappUnpacker_pkg %i $2)

批处理文件中:

@echo off
for /f "delims=\" %%i in ('dir /b /a-d /o-d "*.%FILE_FORMAT%"') do
(call :wxappUnpacker_pkg "%%i" $2)
  • 需要注意的是在批处理文件中引用变量需要两个百分号 %%

第34~44行:

:de_pkg

if "-d" == "%1"

(call :wxappUnpacker %1 %2)

else

(call :wxappUnpacker_pkg %1 %2)

goto:eof

这里定义了一个函数,作用是根据参数是否是目录来调用解包命令。

第46行:

# $1: pkg file or pkg dir; $2: order

这里也是翻译错误,应该在开头用::标记注释。

第48行:

call :de_pkg %1 %2

很简单,就是调用 de_pkg 函数,同时传入了两个参数。

基础知识

最后说几个基础知识

预定义的变量

  • %CD% - 扩展到当前目录字符串。

  • %DATE% - 用跟 DATE 命令同样的格式扩展到当前日期。

  • %TIME% - 用跟 TIME 命令同样的格式扩展到当前时间。

  • %RANDOM% - 扩展到 0 和 32767 之间的任意十进制数字。

  • %ERRORLEVEL% - 扩展到当前 ERRORLEVEL 数值。

  • %CMDEXTVERSION% - 扩展到当前命令处理器扩展名版本号。

  • %CMDCMDLINE% - 扩展到调用命令处理器的原始命令行。

  • %0 bat的完整路径名如"C:\Windows\system32\xxx.bat"

    • 参数%0具有特殊的功能,可以调用批处理自身,以达到批处理本身循环的目的,也可以复制文件自身等等。

  • %1 bat参数1依次类推%2参数2...

  • %path% - 当前的环境变量。以分号隔开的路径列表,路径可包含空格,可以以''结尾, 可以以双引号包围之。

定义变量

SET =[]

如果 是空字符串,则取消变量的定义,变量的值用双引号或空格结束。引号如果没有结束,则默认范围到行尾。

  • 如何使用 MS-DOS 脚本的调用参数

    ECHO %

    N 的范围为 0-9 , %0 为文件名, %1-%9 为参数,每次调用脚本最多支持 9 个参数

    ECHO %*

    %* 代表所有传入的参数,即 %1-%9 ,并且包括其中的空白符

    • %*

    • %

Echo 命令

打开回显或关闭请求回显功能,或显示消息。如果没有任何参数, echo 命令将显示当前回显设置。

语法 :

echo [{on │ off}] [message]

Sample :@echo off / echo hello world

@ 命令

表示不显示 @字符放在命令前将关闭该命令回显,无论此时回显是否处于打开状态。

Sample :@echo off

CALL命令

可以在批处理执行过程中调用另一个批处理,当另一个批处理执行完后,再继续执行原来的批处理 CALL [drive:][path]filename [batch-parameters] 调用的其它批处理程序。filename 参数必须具有 .bat 或 .cmd 扩展名。CALL :label arguments 调用本文件内命令段,相当于子程序。被调用的命令段以标签:label开头 以命令goto :eof结尾

其它还有很多命令,这里就不再赘述了,有兴趣的同学可以自行查阅。

另外可以在逆向教程中查看本文

393247e614c49992a930b37cbe22a33a.png

介绍一个可跨平台的微信小程序反编译客户端

c082efeb33b20a5523f9f43c4a7bc504.png

一起来探索下微信小程序包的魔数

11368f49d91a9cbdd5ba3654c0504448.png

2020年微信小程序解包常见问题汇总

72c566e40314d447489afedd24ef0d1a.png

微信小程序解包常见问题汇总第二弹

1f4ceed9c63ed95f3134879d0c27a56d.png

啥??微信小程序逆向教程微信小程序上线嘞

fb38c05ccd35a2f783a903a41fdc610f.png

!!重磅!!10分钟带你反编译网易严选电商微信小程序(视频教程)


由于公众号推送规则更改,请多多分享点赞“在看”,以及时获取极客之路的最新动态。

      点击在看让更多人发现精彩36a79ca095d61c4d44f6305679a9fc41.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/506668.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

定值保险计算举例_保险公司的“开门红”又要来了!理财险真的值得买吗?

临近年末,各家保险公司都开始备战2020年的“开门红”。对于保险公司来说,“开门红全年红”,只要开门红的任务完成得好,那么今年大半年的保费就不用担心了,因此保险公司们对于这一战都十分重视。如果说“双11”、“双12…

html中post语句,html中post乱码的解决方法

html中post乱码的解决方法发布时间:2021-05-27 11:29:00来源:亿速云阅读:91作者:小新这篇文章主要介绍html中post乱码的解决方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要…

泸州田家炳中学2021高考成绩查询,2021年泸州中考线出来了吗

中考是人们升高中的必经之路,它虽然没有高考那样振奋人心,但是对于当时的人来说也算是一场最正规的考试。首先,不可否认的是中考是很重要的。虽然它不能对高考有着直接影响,但是却有着间接影响。在每年的六份左右出来。中考是很重…

django返回指定html文件,Django返回HTML文件的实现方法

前面我们简单的了解Django的一些工作原理,其中关于页面展示的内容,也全部都是视图(Views)返回的内容,那么我们也知道前端包括很多内容。如:HTML,CSS,JavaScript等以及各种插件,才具备完全的页面…

计算机网络纠错码,计算机网络:纠错

本文概述当数据从发送方发送到接收方时, 纠错码用于检测和纠正错误。纠错可以通过两种方式处理:向后纠错:发现错误后, 接收方会请求发送方重新传输整个数据单元。前向纠错:在这种情况下, 接收器使用纠错码自动纠正错误。单个附加位可以检测到…

扭矩大好还是马力大好_翡翠手镯圈口到底是买大好,还是买小好?行家告诉你...

现在的女性多数人都喜欢购买翡翠手镯、翡翠手链、翡翠戒面等,尤其对翡翠手镯不仅能表现出女性的知性优美,还对身体有一定的好处。翡翠手镯是翡翠价值中除了翡翠戒面外最高的二等翡翠。因为翡翠手镯除了那种开口式的镶嵌翡翠手镯其他的都是闭口的&#xf…

启动失败代码2_菲斯曼燃气壁挂炉故障代码大全及解决方法

菲斯曼燃气壁挂炉型号菲斯曼燃气壁挂炉故障代码大全及解决方法以:06故障代码:系统压力过低。设备的反映: 燃气器锁定。措施:检查系统水压,必要时补充加注供暖水。 0A故障代码:燃气压力过低。设备的反映: 燃气器锁定。措…

用html5交换两个变量的值,Python判断两个对象相等的原理 python交换两个变量的值为什么不用中间变量...

python语言设计一个类代表花,其中含2个对象属性,2class flower: def __init__ (self, name, shape): self.name name self.shape shape def showname (self): print(self.name) def showshape(self): print(self.shape)if __name__ __main__: f1flower("baihe",&q…

3不能安装库_不锈钢水槽如何安装?3个细节要注意,不能忽视,别被套路了

不锈钢水槽如何安装?3个细节要注意,不能忽视,别被套路了随着时代不断的进步。人们生活水平也是不断的提高。生活用品有时间来选,慢慢的步入了我们的日常中。你们觉得家中最重要的地方是什么呢?其实就是厨房&#xff0c…

vs工程 更换opencv版本_Windows下opencv源代码转化和编译

1. CMake工程转化工具下载。CMake是开源的跨平台安装(编译)工具,OpenCV开源代码想要用VS平台打开并编译得由它来做工程转化操作,最后利用VS平台编译出可在windows平台下运行的动态库文件DLL。CMake下载地址:https://cmake.org/download&#…

清理localstorage_关于Cookie、Session、LocalStorage、Cache-Control(摘录)

关于Cookie、Session、LocalStorage、Cache-Control,在总结前先了解一个过程:当用户在一个浏览器注册账号再登录,客户端和服务器发生了什么?一、发生了什么?1、用户打开注册页面,提交信息(登录名…

联想340c笔记本cpu能升级吗_联想扬天威6 2021款酷睿版怎么样?评测值得买吗?从价格和配置看就知道了...

联想扬天威6笔记本电脑现在已经发行到最新的了,对新上市的这款联想扬天威6 2021款在配置,做工,性能全新升级了,目前是值得入手的一款轻薄办公本了,下面一起来详细了解下这款价格和配置情况,看看是不是您需要…

热泵精馏_异丙醇丙酮氢气化学热泵技术验证示范平台建成并完成调试

近日,中国科学院工程热物理研究所传热传质研究中心超强换热团队设计研发的我国首座“异丙醇-丙酮-氢气化学热泵技术验证示范平台”在江苏省高邮市江苏杨钢特钢有限公司建成。目前,平台已完成调试,各部件和系统性能均达到预期目标。该平台是国…

广东有哪些计算机自主招生的大专学校,广州大专自主招生有哪些学校

广州大专自主招生有哪些学校自主招生又称自主选拔,是高校选拔录取工作改革的重要环节。包括国家重点大学自主招生与高职自主招生两大类。以下小编为大家整理了广州大专院校自主招生的学校,希望对大家有所帮助!广东专科自主招生学校名单1、广东…

华硕2020年显卡_TrendForce集邦咨询:2020年液晶显示器年出货成长率达5.4%,华硕成长率居冠、三星排名上升...

根据TrendForce集邦咨询旗下显示器研究处最新调查显示,受惠于疫情衍生的远距工作与教育、宅经济需求,加上北美地区消费力道持续强劲,推升以消费市场为主的液晶显示器品牌厂出货表现逆势上扬,连续三年呈现成长态势,预估…

计算机软件性能测试的过程,性能测试过程的规范

文档控制日期版本说明作者2006-4-71创建陈世明Ŀ设计ʵʩ分析总体分析工作内容生成文档人员需求表单测试过程阶段测试案例文档测试报告文件测试报告文件测试报告文件测试分析文件测试分析文件测试分析文件整个项目的分析报告性能测试基本上分为四个主要阶段:此阶段主要用于测试…

如何在验证集加噪声_B端硬件如何开展产品测试?

B端硬件产品如何开展测试过程,是摆在产品管理和技术研发管理过程的要事。产品测试是产品生命周期中及其重要的环节,难以想象一款产品没有经过测试就推向市场的场景。尤其是B端硬件产品,整个系统较为复杂,存在系统性风险的程度非常…

cad考试题库绘图题答案_2019年低压电工作业操作证考试最新版题库及答案(一)...

关注小程序“安全生产模拟考试一点通”练习全部题库内容,有单选,判断题,工种有第1题、【判断题】10kV以下运行的阀型避雷器的绝缘电阻应每年测量一次。A、正确B、错误正确答案:错误第2题、【判断题】220V的交流电压的最大值为380V…

图像风格迁移cvpr2020_CVPR 2020 | 浙大李俊成:用无监督强化学习方法来获得迁移能力...

作者 | 李俊成编辑 | 蒋宝尚本文是对浙江大学和加州大学圣巴巴拉分校合作完成的,被CVPR 2020收录的论文《Unsupervised Reinforcement Learning of Transferable Meta-Skills for Embodied Navigation》进行解读,相关工作已经开源。论文:http…

uci大学教育转计算机,UCI加州大学尔湾分校计算机科学硕士M.S. Computer Science

计算机科学硕士M.S. Computer Science是加州大学尔湾分校研究生申请的热门专业,下面由美英港新教育重点介绍计算机科学硕士研究生的课程设置、培养目标、申请要求及学费。培养目标加州欧文大学计算机科学包括计算机系统的设计,分析和实现的理论和实践方面…