windows10 通过bat脚本安装软件
通过bat脚本安装软件脚本编写参考文献最近公司需要对外开源一个产品,为了让外界用户尽量简单的使用该产品。打算将依赖软件采用一个脚本的方式进行快速安装。脚本编写这里安装的软件包括:docker, vcxsrv, nodejs 及 使用npm安装adbkit:: 将@echo off:: 设置窗口大小@mode con lines=40 cols=100:: 设置窗口背景颜色color AF:: 设置
·
最近公司需要对外开源一个产品,为了让外界用户尽量简单的使用该产品。打算将依赖软件采用一个脚本的方式进行快速安装。
脚本编写
这里安装的软件包括:docker, vcxsrv, nodejs 及 使用npm安装adbkit
:: 将
@echo off
:: 设置窗口大小
@mode con lines=40 cols=100
:: 设置窗口背景颜色
color AF
:: 设置标题
title "auto install tool"
:: 打印信息
echo "install begin .....">log.txt
:: docker
echo.
echo docker install ......
:: wait 参数表示需要等上一个软件安装之后再进行一个软件安装,因为有时候需要依赖前一个软件,所以这个功能很有用,比如安装adbkit需要先安装nodejs,然后使用nodejs的npm安装adbkit
start /wait .\Docker_Desktop_Installer.exe
:: 根据打印日志的级别判断是否安装成功并答应相应的信息
if %errorlevel% == 0 (echo docker install successful) else echo docker install failed
:: vcxsrv
echo.
echo vcxsrv install ......
start /wait .\vcxsrv-64.1.20.8.1.installer.exe
if %errorlevel% == 0 (echo vcxsrv install successful) else echo vcxsrv install failed
:: nodejs
echo.
echo nodejs install ......
:: 这里安装msi文件
start /wait .\node-v14.15.0-x64.msi /l*v log.txt
if %errorlevel% == 0 (echo nodejs install successful) else echo nodejs install failed
:: adbkit
echo adbkit install ......
npm install i -g adbkit
if %errorlevel% == 0 (echo adbkit install successful) else echo adbkit install failed
echo "install finished">log.txt
pause
碰到的问题
1. Q:安装包的路径被截断,提示安装失败
A:安装包路径中不要出现空格,否则识别会出错。 windows的脚本挺坑的
2. Q:安装nodejs之后,在使用npm安装adbkit时提示无法识别npm命令
A: 安装adbkit是依赖前面安装的nodejs,而开启当前终端时是没有配置nodejs的环境变量的,即使通过当前安装脚本重新代开一个终端执行npm命令也不行,因为在当前bat脚本中打开终端属于子进程,不会去加载环境变量。解决方案时,安装完nodejs之后,在写一个使用npm安装adbkit的脚本单独运行。
4.
其他常见操作汇总
1. 查看环境变量
set
2. 设置系统环境变量
set PATH = %PATH%;C:\Program Files\nodejs\node_modules\npm
3. 调用其他bat文件
start install_adbkit.bat :: 或
@call install_adbkit.bat
4. 从C盘切换到D盘目录
d: :: 先到D盘
cd d:\you\file\directory
5. 获取执行命令的返回值
:: 先通过adb devices获取设备序列好,然后将该值用于adbkit的输入
for /F %%i in ('adb devices') do ( set adb_device=%%i)
echo detect phone deviceid=%adb_device%
start /b adbkit usb-device-to-tcp -p 7788 %adb_device%
6. 查看进程信息
:: 列举当前的进程、进程路径、命令行、进程ID、父进程ID、线程数,内存使用
wmic process get name,executablepath,commandline,processid,parentprocessid,threadcount,workingsetsize/value
:: 查询可用属性 : processid,caption,commandline
wmic process get /?
:: /value显示对应列表
wmic process get caption,commandline /value
:: 根据caption查询进程信息
wmic process where caption="update.exe" get processid,caption,commandline /value
参考文献
http://www.360doc.com/content/19/1007/14/10519289_865323566.shtml
https://blog.csdn.net/WannaHaha/article/details/106289435
http://www.360doc.com/content/13/0311/20/1865135_270860611.shtml
https://stackoverrun.com/cn/q/6918426
更多推荐
已为社区贡献1条内容
所有评论(0)