前要
情况简述(可直接跳转实现方法):
本人要执行如下命令,对安卓app进行解包。
java -jar D:\tools\ST-Android\APK-tools\apktool.jar d -[参数-可省略] D:\路径\xx.apk
被解包的文件xx.apk路径会经常变化。这意味着,要解包apk文件,需要经历一下步骤,步骤繁多、严重影响生产效率。
(1)打开cmd。
(2)要先找到apktool路径
(3)再找到apk文件。
(4)拼接命令执行。
故此,本人考虑是否可以将 “java -jar D:\tools\ST-Android\APK-tools\apktool.jar” 定义为命令 “apktool” 。
#修改前命令:
java -jar D:\tools\ST-Android\APK-tools\apktool.jar d -[参数-可省略] D:\路径\xx.apk
#修改后命令(在需要解包的apk文件目录下打开命令执行终端>>>按住shift键单机右键->在终端中打开or在此处打开powershll窗口):
apktool d -[参数-可省略] xx.apk
为了实现该功能,本人进行了以下尝试:
- 首先尝试cmd自定义命令,参考文章为[windows自定义快捷命令],没有成功,因为该方法主要起作用的命令doskey其功能为 用于重调以前输入的命令行,也就是说使用该方法无法接收参数。
- 随后尝试powershell自定义命令,参考文章为[Windows Powershell 自定义命令简写(alias)],完美解决了不能接收参数的问题。但是问题又来了,里面给的示例只能接收固定数量的参数,不符合需求。看了一下这个powershell脚本,发这玩意儿主要是个函数就搜索了一下powershell函数,参考[PowerShell笔记-8.函数 - 百度文库]解决了参数数量变化的问题。
- 部分自定义也可以通过自定义环境变量来解决。比如说每次调用Java、Python、sqlmap等命令通过绝对路径来调用,那么可以将其绝对路径写入环境变量,即可在任何路径调用以上命令。详情参考文章[windows中将sqlmap添加到环境变量中(添加环境变量实现自定义命令)]。
以上查找思路描述,是想大家能够通过本人的思路,理清自己的需求,选自最适合自己的自定义命令方法。
参考文章:
windows自定义快捷命令(cmd-自定义命令)
Windows Powershell 自定义命令简写(alias)
PowerShell笔记-8.函数 - 百度文库
windows中将sqlmap添加到环境变量中(添加环境变量实现自定义命令)
实现方法
1.打开powershell,获取powershell配置文件的路径:
echo $PROFILE
#C:\Users\username\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
2.在C:\Users\username\Documents\创建WindowsPowerShell目录,在WindowsPowerShell下创建文件Microsoft.PowerShell_profile.ps1。
3.编写Microsoft.PowerShell_profile.ps1,关闭所有powershell界面,打开powershell执行自定义命令,效果如图
#---自定义不需要参数的命令
#function 自定义的命令 { 命令内容 }
#例如
function hi {echo hello world}
#---自定义需要固定数量的参数的命令
function ha(){
param([string] $name)
echo hello $name
}
#--自定义不确定数量的参数的命令
function hb(){
echo hello $args
}