[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
回复 14# 5i365


    改了

TOP

本帖最后由 5i365 于 2021-10-28 15:22 编辑

回复 16# idwma


    还是不行, 还是一共要三次才能OK, 以前是两次

TOP

回复 16# idwma


    我这里是学校的还原卡的电脑, 重启后安装的就没有了, 方便测试, 一般的电脑, 安装上还得需要全部卸载才可以试, 有点麻烦

这个脚本, 一共是安装三个程序, 一个git 一个npm 一个yarn , 前两个是最后一个的基础, 前两个在静默安装时也会自动设置环境变量

TOP

回复 15# 5i365

测试下看看,多用start /w 或者call ,因为最后一个程序是基于前一个在线下载安装的,所以需要等待执行。

@echo off
color 1f
echo.
echo GIT 版本:
call git --version 2>nul
if %errorlevel% == 0 (
    echo.
    echo GIT 已安装
    echo ______________________________
) else (
    echo.
    echo GIT 未安装, 开始安装...
    echo ______________________________
call Git-2.33.0.2-64-bit.exe /VERYSILENT
        cls
        echo.
        echo GIT 安装完成
    echo ______________________________
)

echo.
echo NPM 版本:
call npm --version 2>nul
if %errorlevel% == 0 (
    echo.
    echo NPM 已安装, 继续执行
    echo ______________________________
    goto :next
) else (
    echo.
    echo NPM 未安装, 开始安装...
    echo ______________________________
call MsiExec.exe /i node-v13.14.0-x64.msi /qn
        echo.
        echo GIT 安装完成
)

echo.
echo Yarn 版本:
call yarn --version 2>nul
if %errorlevel% == 0 (
    echo.
    echo Yarn 已安装
    echo _________________________________________________________
) else (
    echo.
    echo Yarn 未安装, 开始安装...
    echo _________________________________________________________
call npm install -g yarn --registry=https://registry.npm.taobao.org
    echo.
    echo 正在设置环境变量
    echo _________________________________________________________
    setx PATH "%PATH%;C:\Users\%username%\AppData\Local\Yarn\bin"
    echo Yarn 已安装, 继续重启执行
    echo _________________________________________________________
)

echo.
echo,全部程序已安装完成
pause>nul

TOP

回复 19# yakeyun


    第一次执行, 最后显示都安装成功了, 再次打开, 闪一下就关了, 单独cmd试了一下, yarn没有安装成功, 也就是说, 上面的代码, 无法安装yarn了, 前面修改过的, 两次或三次都可以安装成功, 只是不能一次成功

TOP

回复 20# 5i365


call npm install -g yarn --registry=https://registry.npm.taobao.org


这句代码已经很明显了,前面的两个程序安装成功后,才能识别到npm命令,所以前面两个需要先安装,第三个才能被执行。

TOP

是的, 所以想办法关闭cmd后, 再自动打开

TOP

回复 22# 5i365


方法也好解决,就是把第三个改成网上的直链,然后通过"url"命令获取,调用7z解压完成后静默安装。

TOP

回复 22# 5i365


试下这个看看:

@echo off
color 1f
if exist yarn.bat (del yarn.bat)
echo ^echo Yarn 版本:>.\yarn.bat
echo call yarn --version ^2^>nul >>.\yarn.bat
echo if %%errorlevel^%% == 0 ( >>.\yarn.bat
echo ^echo Yarn 已安装 >>.\yarn.bat
echo ^echo _________________________________________________________ >>.\yarn.bat
echo ) else ( >>.\yarn.bat
echo ^echo. >>.\yarn.bat
echo ^echo Yarn 未安装, 开始安装 >>.\yarn.bat
echo ^echo _________________________________________________________ >>.\yarn.bat
echo call npm install -g yarn --registry=https://registry.npm.taobao.org >>.\yarn.bat
echo ^echo. >>.\yarn.bat
echo ^echo 正在设置环境变量 >>.\yarn.bat
echo ^echo _________________________________________________________ >>.\yarn.bat
echo setx PATH "%%PATH^%%;C:\Users\%%username%%\AppData\Local\Yarn\bin" >>.\yarn.bat
echo ^echo Yarn 已安装, 继续重启执行 >>.\yarn.bat
echo ^echo _________________________________________________________ >>.\yarn.bat
echo ^) >>.\yarn.bat
cls

echo.
echo GIT 版本:
call git --version 2>nul
if %errorlevel% == 0 (
    echo.
    echo GIT 已安装
    echo ______________________________
) else (
    echo.
    echo GIT 未安装, 开始安装...
    echo ______________________________
call Git-2.33.0.2-64-bit.exe /VERYSILENT
        cls
        echo.
        echo GIT 安装完成
    echo ______________________________
)

echo.
echo NPM 版本:
call npm --version 2>nul
if %errorlevel% == 0 (
    echo.
    echo NPM 已安装, 继续执行
    echo ______________________________
    goto :next
) else (
    echo.
    echo NPM 未安装, 开始安装...
    echo ______________________________
call MsiExec.exe /i node-v13.14.0-x64.msi /qn
        echo.
        echo NPM 安装完成
        call yarn.bat
)
if exist yarn.bat (del yarn.bat)
echo.
echo,全部程序已安装完成
echo.
pause>nul

TOP

本帖最后由 5i365 于 2021-10-28 19:12 编辑

回复 24# yakeyun


    感谢, 试了一下, 还是不行, 到最后执行yarm时, 一路跑了很多行, 最后自动关了, 再打开批处理, 也不执行了, 执行到yarn那, 里就自动关了

我最开始的代码, 用起来很稳定的, 唯一不方便的就是, 等关了之后, 再手动打开一下

代码的原作者, 干脆就是两个批处理, 我是合二为一了

TOP

本帖最后由 yakeyun 于 2021-10-28 23:08 编辑

回复 25# 5i365


用下面这个放到同级目录,可以不用之前的批处理直接运行run.bat就可以了,实现打开关闭脚本,然后再次打开自身。

https://sanli.lanzouw.com/i9SDEvvu90b

TOP

回复 26# yakeyun


    感谢, 12楼的碉堡了, 完美搞定了,
因为用到了第三方exe, 不太方便 所以没有来及测试

TOP

回复 12# idwma


    本人水太浅, 大侠能否说说问题的关键所在?

TOP

本帖最后由 idwma 于 2021-10-29 14:08 编辑

回复 28# 5i365


    也是按你的思路来的呀,34到36行获取路径变量

TOP

回复 29# idwma


关键的思路就是让软件设置的环境变量在当前的脚本环境中生效。

楼主从开始就进入了一个思维陷阱,误以为:
1、一定要分开两个脚本
2、一定要关闭脚本然后延时再打开
http://bbs.bathome.net/thread-60510-1-1.html#pid247365
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表