首页 软件下载正文

批量安装软件的脚本

文章来源:吾爱破解论坛

前提:需要了解一些基础cmd命令

问题描述:
由于经常帮朋友的新电脑安装软件,在这种需要在新系统下配置软件环境的前提下,编写了一个自动安装的脚本程序,可以通过简单的输入快速静默安装软件(尝试过softprop等类似软件,但由于此类软件无法调用64位cmd导致在64位系统中添加注册表信息会出错,因此才开始尝试直接利用cmd脚本来实现批量安装功能)
进入后会提示安装总安装路径以及选择可用的mac地址(例如ansys就需要mac信息来配置许可证),运行截图如下:

cmd自动安装软件


提示:选择mac后就会进入到可用软件列表选项中,此时会在用户的桌面输出一个日志文件,内部包含一些安装信息,方便用户检查是否安装出错
如需要安装多个软件,则可输入多个代表数字,中间用空格隔开即可

用户可以在软件安装的bat文件中调用输出加载日志中的全局函数,以便可以把软件安装到一个总路径下,以及写入一些公共信息。

至于每个软件所需要的bat文件,用户可以通过网络查询相应的静默安装参数后编写到对应的bat文件中




main.bat内容如下:
@echo off
setlocal enabledelayedexpansion

rem ################## 加载插件 ################## 

:: 配置plugin
:: 设置插件路径
set plugin=plugin\

:: 7Z解压工具
:: 配置调用程序
set unpack=%~dp0%plugin%7Z\7Z.exe

:: 设置解压缓存目录:x:\xx\
set unpack_path=C:\temp\

:: WCE虚拟光驱工具
:: 配置调用程序
set VD=%~dp0%plugin%WinCDEmu\PortableWinCDEmu-4.0.exe

rem ################ 加载文件夹路径 ################ 

:: 获取桌面地址
set desk = ""
for /f "tokens=2,*" %%i in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Desktop"') do (
set desk=%%j
)

:: 获取用户文档地址
set docu = ""
for /f "tokens=2,*" %%i in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Personal"') do (
set docu=%%j
)

:: 设置安装日志
set log="%desk%\安装日志.log"

:selet_path
echo -------------------------------------------------
echo       [1]     选择输入安装总路径
echo       [2]     手动输入安装总路径
echo -------------------------------------------------

choice /c:12 /m:"选择输入方式:"
if %errorlevel%==1 (goto select_folder)
if %errorlevel%==2 (goto self_set_install_path)

:self_set_install_path
:: 手动设置安装目录:x:\xx\
set /p install_path="输入地址(x:\xx):"
set install_path=%install_path%\
goto get_mac_address

:select_folder
:: 生成获取选择路径的vbs
(echo   Set sa=CreateObject^("Shell.Application"^)
echo    Set objfolder=sa.BrowseForFolder^(0, "选择安装总路径:", 0, ^&H00000000^)
echo    If objfolder Is Nothing Then
echo    WSH.echo "Cancelled"
echo    WSH.Quit
echo    End If
echo    Set objitem=objfolder.Self
echo    WSH.echo objitem.Path)>"%temp%\select_folder.vbs"
for /f "delims=" %%a in ('cscript -nologo -e:vbscript "%temp%\select_folder.vbs"') do (
    set "install_path=%%a"
    )
:: 清理临时文件
del "%tmp%\select_folder.vbs"   
if "%install_path%"=="Cancelled" (
    echo 文件夹选择被取消或失败
    goto select_folder
) else (
    set install_path=%install_path%\
    goto get_mac_address
)

rem ################ 获取用户mac地址 ################ 

:get_mac_address
echo %install_path%
1
:: 初始化计数器
set count=0
:: 获取并显示所有MAC地址
echo 以下是您的网络接口MAC地址列表:
echo -------------------------------------------------
for /f "tokens=1,3 delims=," %%a in ('getmac /v /NH /fo csv') do (
    set /a count+=1
    echo [!count!] %%a - %%b
    set "mac[!count!]=%%b"
)
echo -------------------------------------------------
:: 提示选择一个MAC地址
echo.
echo 请选择一个MAC地址(输入对应的数字):
set /p choice="输入选择: "
:: 显示用户选择的MAC地址
if defined mac[%choice%] (
    echo.
    echo 您选择的MAC地址是:!mac[%choice%]!
) else (
    echo.
    echo 无效的选择,请重新选择。
    goto getmacaddress
)
:: 格式化mac地址
set str=!mac[%choice%]!
set str=%str:"=%
set hostid=%str:-=%
echo %hostid%

rem ################## 输出加载日志 ################## 

:: 安装目录:%install_path%,x:\xx\
:: 用户桌面位置:%desk%,x:\xx
:: 用户文档位置:%docu%,x:\xx
:: 解压工具:%unpack%
:: 解压路径:%unpack_path%,x:\xx\
:: 解压命令 %unpack% x <解压资源路径> -o"<解压路径>"
:: 虚拟光驱工具:%VD%
:: 加载光驱:%VD% <image file> [<drive letter>] [/wait] - mount image file
:: 卸载光驱工具:%VD% /unmount <drive letter>: - unmount image file
:: 安装日志:%log%,x:xxxx.log
:: hostid: XXXXXXXXXXXX (格式化后的mac地址)

echo %time% 启动程序  >>%log%
echo ------------------------------------------------- >>%log%
echo 加载用户参数如下: >> %log%
echo 安装目录:%install_path% >> %log%
echo 用户桌面位置:%desk% >> %log%
echo 用户文档位置:%docu% >> %log%
echo 用户主机mac地址:%hostid% >> %log%
echo ------------------------------------------------- >>%log%

rem ################ 加载软件列表 ################ 

:getsoftlist
setlocal
:: 初始化计数器
set count=0
:: 获取软件列表
echo 以下是当前软件列表:
echo -------------------------------------------------
for /f "tokens=1,2 delims=," %%a in (.\软件列表.txt) do (
    set /a count+=1
    echo [!count!] %%a
    set "softname[!count!]=%%a"
    set "softcmd[!count!]=%%b"
)
echo 请选择需要安装的软件(输入对应的数字):
set /p choice="输入选择: "
:: 执行选择安装的软件
for %%i in (%choice%) do (
    echo 正在安装 !softname[%%i]!
    call !softcmd[%%i]!
)
endlocal


软件列表.txt内容如下:
adraw,%~dp0edraw\edraw.bat
potplayer,%~dp0potplayer\PotPlayer.bat
adraw14,EdrawMax.14\edraw.bat


版权声明:

本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。

有关影视版权:本站只供百度云网盘资源,版权均属于影片公司所有,请在下载后24小时删除,切勿用于商业用途。本站所有资源信息均从互联网搜索而来,本站不对显示的内容承担责任,如您认为本站页面信息侵犯了您的权益,请附上版权证明邮件告知【754403226@qq.com】,在收到邮件后72小时内删除。本文链接:https://www.piaodoo.com/121664.html

搜索