吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 17644|回复: 289
收起左侧

[其他原创] 【绝对好用】Alist开机启动批处理脚本-利用ALIST和阿里云,搭建本地影音共享系统。

    [复制链接]
fireye 发表于 2022-11-16 15:52
本帖最后由 fireye 于 2023-5-18 22:29 编辑

前言
本人在网上折腾很多教程,以及用了论坛提供的提脚,有些是以SH,安装GIT工具来做为开机启动,有些是用VBS脚本来实现,总之特别麻烦。而且需要安装这安装那,我比较懒,干脆动手做一个批处理脚本解决。不多说,先放代码。本脚本是方便Alist搭建网盘,可以配置阿里云,123PAN,百度云等网盘挂载为本地,以WEBDAV的形式挂载。比网上的教程要方便好用。
微信截图_20221102193915.png
本脚本的特色自动下载最新的Alist,并且以windows服务的方式启动自动下载最新的RaiDrive,全自动安装自动更新Alist为最新的,每隔三天左右更新一次,添加为计划任务。安装过程中完全自动化,无需手工,会自动显示Alist账号和密码。安装过程中会弹出web界面进行初始化设备会自动添加Alist的目录为环境变量,方便以后执行alist的相关命令,可以在cmd下执行alist --help查看需要设置的是两个地方,一个alistpath就是alist安装路径还有一个需要设置的就是alist服务名,也可以不用改,根据自己的爱好。

最新更新,本人经过大量的测试后再次放出最完美的版本,2022-11.19再次更新
  • 已经更新了自动屏蔽RaiDrive广告
  • 再次更新了,新加了迁移功能

有些朋友之前用了Alist,为了方便各位童鞋的使用,新增了迁移功能。免去手工的麻烦。一步到位!

ALIST目录下建立tools文件夹,用于放置各种工具,例如jq,sed,awk等工具
代码进行大量的优化和精简,模块化的操作,可阅读性极强。
解决修复了各种出错
分以下四种情况操作。全部自动选择处理。
重新安装:文件存在,但服务都不存在,需要重装。
全新安装:文件和服务都不存在,需要全新安装。
升级安装:文件存在,服务也安装过了,需要升级。
修复安装:文件不存在,但服务也安装过了,需要修复。
关于RaiDrive无法显示盘符的问题,
原因是开机后ALIST没有启动或者是RaiDrive服务比ALIST服务先启动了,导致这样的问题。解决方案就是,弄一个启动脚本即可。这样的话,Alist以服务方式安装后会比RaiDrive优先启动,这样就不会添加NAS盘符而无故消失的问题。
[PowerShell] 纯文本查看 复制代码
net stop RaiDrive.Service
TIMEOUT /t 15 >NUL
net start RaiDrive.Service

脚本说明

  • 自动下载最新的Alist,并且以windows服务的方式启动
  • 自动下载最新的RaiDrive,全自动安装
  • 自动更新Alist为最新的,每隔三天左右更新一次,添加为计划任务。
  • 安装过程中完全自动化,无需手工,会自动显示Alist账号和密码。
  • 安装过程中会弹出web界面进行初始化设备
  • 会自动添加Alist的目录为环境变量,方便以后执行alist的相关命令,可以在cmd下执行alist --help查看
  • 需要设置的是两个地方,一个alistpath就是alist安装路径
  • 还有一个需要设置的就是alist服务名,也可以不用改,根据自己的爱好。


微信截图_20221102195703.png
微信截图_20221102195719.png
微信截图_20221102195741.png
微信截图_20221102195753.png
微信截图_20221102185843.png
视频播放效果
快照1.png
快照3.png
快照5.png
音频播放效果
快照6.png



RAIDRIVE的设置
微信图片_20221102184043.jpg

附件下载
微信图片_20221102190008.jpg
alistplus.zip (7.54 KB, 下载次数: 3250)

已经修复闪退、被误杀、被拦截、没有权限、需要重启等诸多的问题,并且自动将设置RaiDrive的启动方式设置为自动延迟启动,避免Alist还没启动。Raidrive先启动导致网盘重启后无法挂载的问题。
并且自动修复环境变量重复和排序先后的问题,解决卸载问题。

免费评分

参与人数 48吾爱币 +57 热心值 +42 收起 理由
别离。 + 2 + 1 谢谢@Thanks!
闻道沐心 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
奶油书生 + 1 + 1 热心回复!
zibuyu + 2 + 1 谢谢@Thanks!
zjyyqt66 + 1 + 1 谢谢@Thanks!
稀光 + 1 + 1 谢谢@Thanks!
mali8127 + 1 + 1 谢谢@Thanks!非常好用,其他人的不好用。。感谢
13262329272 + 1 + 1 一键操作确实豪爽
Israel + 1 我很赞同!
andylawrence + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
wall + 1 谢谢@Thanks!
Mike_A + 1 谢谢@Thanks!
bigjerry + 1 + 1 谢谢@Thanks!
52pj + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
ji0063 + 1 谢谢@Thanks!
给朕乘碗饭 + 1 + 1 谢谢@Thanks!
youfeili520 + 1 + 1 谢谢@Thanks!
ovodestroy + 1 + 1 谢谢@Thanks!
a1002 + 1 + 1 谢谢@Thanks!
xps1999 + 1 + 1 热心回复!
平大王的暖宝宝 + 1 + 1 谢谢@Thanks!
miaoj29 + 1 谢谢@Thanks!
262482017 + 1 + 1 谢谢@Thanks!
qianxi025 + 1 + 1 谢谢@Thanks!
witolau + 1 + 1 谢谢@Thanks!
pwzx + 1 + 1 很好用!!
cashrmb + 1 谢谢@Thanks!
MoonKing + 1 + 1 谢谢@Thanks!
sandaye + 2 + 1 谢谢@Thanks!
mumeng + 1 + 1 很完美
li368518 + 1 + 1 谢谢@Thanks!
天域至尊 + 2 + 1 大佬
heao1996 + 1 + 1 谢谢@Thanks!
彩色白勺黑 + 1 用心讨论,共获提升!
deliwanger + 1 + 1 谢谢@Thanks!
nnzhs + 1 谢谢@Thanks!
jiebingwen + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
yourfellow + 1 + 1 谢谢@Thanks!
HundSimon + 1 谢谢@Thanks!
ThomasVictor + 1 + 1 谢谢@Thanks!
jk1232 + 1 + 1 谢谢@Thanks!
skchang + 1 + 1 谢谢@Thanks!
fengwutianxiaan + 2 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Jacobian + 1 + 1 谢谢@Thanks!
mC.Lunat!c + 2 + 1 可以不用手动配置了,舒服~
1pipi2 + 1 + 1 nssm封装服务后为system运行,无法命令行修改alist
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
安遇予而欢 + 1 + 1 我很赞同!老好用了!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

vip198926 发表于 2022-11-19 23:54
本帖最后由 vip198926 于 2022-11-20 00:00 编辑
fireye 发表于 2022-11-19 21:15
别放C盘,建议放D

没有放在C盘,放的就是D盘,只是缺少很多命令行的程序,自己用chocolatey安装好了,还有很多命令用的是XXX64 比如“jq64” WIN11 上面都报错了,我把64删除就好了
还有批处理的跟目标需要一个“nssm64.exe”文件

还有一点批处理放到“D:\SoftAPP\Alist”这个目录也会出错,应该是Alist目录和Alist.exe在名字上有冲空,我在后面加了个字母解决了
微信图片_20221119235738.png




安装时一定得是管理员运行,如果中途出错退出了,再次装的时候就只是更新安装了,所以没有完整安装的吾友可以改33行代码
IF %ISfirst%==11 GOTO Upgrade  将这里的“Upgrade”为“ReInstall”  “Install” “RepairInstall”其一等方式重新安装
我WIN11 可以运行所需要的文件和批处理修改后可以正常安装的文件下载: SoftAPP.zip (172.89 KB, 下载次数: 700)
不想改批处理里面的地址就解压出来放到D盘根目录再以管理员身份运行脚本



tzwdj01 发表于 2023-9-1 17:26
大佬好,密码的文档只有账号admin 密码是空的怎么破
 楼主| fireye 发表于 2022-11-16 16:50
本帖最后由 fireye 于 2022-12-3 09:59 编辑

alist开机启动脚本-ALIST一键脚本
附上ALIST最方便好用的强大代码。批处理脚本
[PowerShell] 纯文本查看 复制代码
@ECHO OFF&(PUSHD "%~DP0")&(REG QUERY "HKU\S-1-5-19">NUL 2>&1)||(powershell -Command "Start-Process '%~sdpnx0' -Verb RunAs"&&EXIT)
SETlocal enabledelayedexpansion
title Alist安裝管理器 V1.0 by Fireye
Echo  ========================== 使用说明,请仔细看清楚 =========================
Echo                        南無大願地藏王菩薩 地獄不空 誓不成佛
Echo 1、第一次安装系统会自动退出一次,不要惊慌,请重新再运行一次!
Echo 2、第一次安装系统会自动退出一次,不要惊慌,请重新再运行一次!
Echo 3、第一次安装系统会自动退出一次,不要惊慌,请重新再运行一次!
Echo 4、切记!切记!切记!
Echo  =========================================================================
pause

  ::设置运行环境
 Echo 正在检测系统环境
 SET AppUp=AlistPlus
 SET ServiceName=AlistDriveService
 SET AppName=alist
 SET ReposName=alist-org
 SET ReleasesUrl=https://api.github.com/repos/%ReposName%/%AppName%/releases
 SET RaiD=RaiDrive.Service
 SET AppUPath=%ProgramData%\%AppUp%
 SET Tools=%ProgramData%\%AppUp%\Tools
IF NOT EXIST "%Tools%" (md %Tools%)
rem wmic ENVIRONMENT where "name='Path' and username='<SYSTEM>'" set VariableValue="%path%;%SystemRoot%\system32\WBEM;%AppUPath%;%Tools%;%ALLUSERSPROFILE%\chocolatey\bin">NUL 2>NUL
wmic ENVIRONMENT where "name='Path' and username='<SYSTEM>'" set VariableValue="%path%;%SystemRoot%\system32\WBEM;%ALLUSERSPROFILE%\chocolatey\bin;%Tools%">NUL 2>NUL
rem 先從WMIC裏找環境變量,如果存在ALISTPLUS目錄的話,就不添加,如果

Dir /b %ProgramData%\chocolatey\bin\chocolatey.exe 2>NUL | Findstr /ir "exe">NUL 2>NUL&&Goto RestartSYS ||Goto LinkFindDown

:LinkFindDown
    Echo   系统环境缺失,开始下载中....!
    rem Curl --output-dir %ProgramData% https://gitee.com/jilefo/AlistPlus/releases/download/v1.0/%AppUp%.exe

    set Giturl=https://gitee.com/jilefo/%AppUp%/releases/download/v1.0/%AppUp%.exe
    Curl -# -O --output-dir %ProgramData% %Giturl%  --ssl-no-revoke -L
    %ProgramData%\%AppUp%.exe>NUL 2>NUL
    TIMEOUT /t 10 >NUL

:RestartSYS
    wmic ENVIRONMENT where "name='Path' and username='<SYSTEM>'" set VariableValue="%path%;%SystemRoot%\system32\WBEM;%ALLUSERSPROFILE%\chocolatey\bin;%Tools%">NUL 2>NUL
    %Tools%\dllcall.exe SendMessageTimeoutA,65535,26,,"Environment",2,4444,,user32>NUL 2>NUL
    diff64 --help 2>NUL| findstr /ri "normal" >NUL 2>NUL&&RunDll32.exe USER32.DLL,UpdatePerUserSystemParameters||taskkill /im explorer.exe /f>NUL 2>NUL&&start "" "%WinDir%\explorer.exe">NUL 2>NUL

Echo  ========================== Alist安裝管理器 V1.0 =========================
Echo                        南無大願地藏王菩薩 地獄不空 誓不成佛
Echo  =========================================================================
Echo 正在检查您的系统是否安装过%AppName%

WMIC Process Get ExecutablePath | Findstr /i "%AppName%.exe" >NUL 2>NUL>%AppName%Path.txt&&Goto AlistFind||Goto FindPath

:AlistFind
        for /f "delims=" %%o in (%AppName%Path.txt) do (
        SET AListPath=%%o
        call set "AListPath=%%AListPath:!AppName!.exe=%%"
        call set "AListPath=%%AListPath: =%%"
      )
Goto AppPath

:FindPath
     ::沒有安裝過%AppName%
    echo 系统检查到您的系统曾经安装过%AppName%,根据时间先后排序。
    Everything -startup
    es /i "%AppName%.exe" -highlight -sort-date-modified -sort-date-run -path-column | sort64 -iu | Findstr /riv "recy">RunDir.txt
    wmic logicaldisk get DriveType,name|Findstr /v /r "%systemdrive% 4" | gawk64 -F" " "{if (NR>1){print $2}}" | Findstr /v "^$">DRiver.txt
    set Num=0
    set n=0
    Findstr . RunDir.txt >NUL 2>NUL&&SET FindPath=1 || SET FindPath=0 
    if %FindPath%==1 (
        for /f  "delims=" %%a in (RunDir.txt) do (
            set /a Num+=1
            @echo [!Num!], %%a
        )
        set /p input="请输入对应数字选择安装路径:"
        for /f "delims=" %%i in (RunDir.txt) do (
            set /a n+=1 & if !n!==!input! set "AlistPath=%%i"
        )
    ) else (
        for /f  "delims=" %%a in (DRiver.txt) do (
            set /a Num+=1
            @echo [!Num!], %%a
        )
        set /p input="请输入对应数字选择安装盘符:"
        for /f "delims=" %%i in (DRiver.txt) do (
            set /a n+=1 & if !n!==!input! set "DRiver=%%i"
        )
        echo 您选择的【!DRiver!】
        echo 按【y】选择, 推荐目录:!DRiver!\SoftAPP\Alist
        echo 按【n】选择, 自己输入,不用输盘符
        SET /p scdir="请选择"
        IF "!scdir!"=="y" SET AlistPath=!DRiver!\SoftAPP\Alist
        IF "!scdir!"=="n" (
            SET /p DirPath="请输入!DRiver!下的目录, 例如SOFT\Alist"
            SET AlistPath=!DRiver!\!DirPath!
            SET "AlistPath=!AlistPath:/=\!"
            SET "AlistPath=!AlistPath:\\=\!"
            SET "AlistPath=!AlistPath: =!"
        )
)

:AppPath
    Echo !AlistPath! | Findstr /ir "\\.$">NUL 2>NUL&&SET AppPath=!AlistPath!||set AppPath=!AlistPath!\
    Echo 安裝目錄:「%AppPath%」
    rem SET AppPath=!AlistPath!
    IF NOT EXIST "%AppPath%tools" (md %AppPath%tools)
    cd /d %AppPath%

     ::判断是否为第一次安装
    IF EXIST "%AppPath%!AppName!.exe" (SET ISexist=1) ELSE (SET ISexist=0)
     ::判断文件是否存在
    WMIC Service GET name | Findstr /i "%ServiceName%" >NUL 2>NUL&&SET ISservs=1||SET ISservs=0

    SET ISfirst=%ISexist%%ISservs%
     ::根据当前系统存在各种情况进行判断
    IF %ISfirst%==10 GOTO ReInstall
    IF %ISfirst%==00 GOTO Install
    IF %ISfirst%==01 GOTO RepairInstall
    IF %ISfirst%==11 GOTO Upgrade


:ReInstall
  ::10-重新安装:文件存在,但服务都不存在,需要重装。
    Echo ============重新安装============
      ::调用环境初始化检查模块
    CALL :SetEnv

      ::调用服务安装模块
    CALL :Service

      ::调用Alist配置模块
    CALL :AlistWeb

      ::调用计划任务升级
    CALL :Taskschd

    goto End

:Install
  ::00-全新安装:文件和服务都不存在,需要全新安装。
    Echo ============全新安装============

      ::调用环境初始化检查模块
    CALL :SetEnv

       ::调用下载和启动服务模块
    CALL :Down

       ::调用最新版本获取模块
    CALL :Latest

       ::调用服务安装模块
    CALL :Service

       ::调用Alist配置模块
    CALL :AlistWeb

    Echo   ::调用计划任务升级
    CALL :Taskschd

    goto End
    

:RepairInstall
  ::01-修复安装:文件不存在,但服务也安装过了,需要修复。
    Echo ============修复安装============

      ::调用环境初始化检查模块
    CALL :SetEnv

      ::调用最新版本获取模块
    CALL :Latest

      ::调用下载和启动服务模块
    CALL :Down

      ::调用服务安装模块
    CALL :Service

      ::调用Alist配置模块
    CALL :AlistWeb

    goto End

:Upgrade
  ::11-升级安装:文件存在,服务也安装过了,需要升级。
    Echo ============升级安装============

      ::调用环境初始化检查模块
    CALL :SetEnv

      ::调用最新版本获取模块
    CALL :Latest

      ::调用当前版本获取模块
    CALL :Current

    Echo =====正在判断是否需要升级===
    if "%CurrentVersion%" == "%LatestVersion%" (Echo %AppName%版本已经是最新的%LatestVersion%版,无需升级!) else (
      Echo %AppName%的当前为%CurrentVersion%版,最新是%LatestVersion%,需要升级!
      nssm64 stop %ServiceName%>NUL 2>NUL
      Echo %AppName%正在升级中,请稍等

        ::调用下载和启动服务模块
      CALL :Down
      nssm64 start %ServiceName%>NUL 2>NUL&TIMEOUT /t 2 >NUL
      TIMEOUT /t 2 >NUL
      nircmd shexec "open" "http://localhost:5244/" 

  )

      goto End

:SetEnv
      ::環境變量设置
    WMIC ENVIRONMENT Where "name='path' And username='<SYSTEM>'" set VariableValue='%path%;%AppPath%;'>NUL 2>NUL
      ::复制相关组件并解压
     md %AppData%\JPEGView\>NUL 2>NUL
    COPY %Tools%\JPEGView.ini %AppData%\JPEGView\ /y>NUL 2>NUL
    IF NOT EXIST "%AppPath%tools\AlistPlus.exe" (
        COPY %AppUPath%\AlistPlus.exe %AppPath%\tools\ /y>NUL 2>NUL
    )
     ::判断目錄是否爲空
    dir /b %AppPath%tools 2>NUL | findstr .>NUL 2>NUL||bz x -y -o:%AppPath%tools %AppPath%tools\AlistPlus.exe>NUL 2>NUL

      ::立即刷新环境变量生效,不用重启
    dllcall SendMessageTimeoutA,65535,26,,"Environment",2,4444,,user32>NUL 2>NUL

       ::安装RaiDrive 先判断系统是不事安装过了raidrive

          WMIC Service  GET name | Findstr /i "%RaiD%">NUL 2>NUL&&SET RaiDriveIns=1||SET RaiDriveIns=0
     IF %RaiDriveIns%==0 (
         cls
         Echo RaiDrive还没安装,現在開始安裝
         Echo  ========================== Alist安裝管理器 V1.0 =========================
         Echo                        南無大願地藏王菩薩 地獄不空 誓不成佛
         Echo  =========================================================================
         Echo  请选择RaiDrive的安装版本:
         Echo. 【1、】最新版本(默认有广告可去广告)  
         Echo. 【2、】旧版本(原生无广告)     
         Echo  =========================================================================
         set /p choice=请选择RaiDrive的版本:
         if "!choice!"=="1" (choco install raidrive -y -f)
         if "!choice!"=="2" (choco install raidrive --version=2020.11.30.20210117 -y -f)
         
     ) else (Echo RaiDrive已经安装过了)

       ::环境变量去重
        Echo %path% | sed64 -e "s#;;#;#g" | sed64 -e "s#\/#\\#g" | sed64 -e "s/;/\n/g"| sed64 -e "/\"/s/"//g"|sed64 "s/\\$//g"| sed64 "/^[[:blank:]]*$/d" | sort64 -ufb >!AppPath!tools\NewPath.txt
          ::先提取windows爲主的關鍵詞
        Findstr /ir "c\:\\windows"  !AppPath!tools\NewPath.txt>!AppPath!tools\PathWin.txt
          ::查找非windows爲主的關鍵詞導出來
        Findstr /ir "\:" !AppPath!tools\NewPath.txt | Findstr /irv "c\:\\windows">!AppPath!tools\PathUsr.txt
          ::然後一起打印合並成新的文件, 以分號隔開
        cat !AppPath!tools\PathWin.txt !AppPath!tools\PathUsr.txt | gawk64 "{printf $0\";\"}">!AppPath!tools\NewPath.txt
          ::讀取文件到變量
        for /f "delims=" %%l in (!AppPath!tools\NewPath.txt) do SET EnvironmentPath=%%l
          ::更新到系統環境變量
        Echo %path% >!AppPath!tools\SysPath.txt
        diff64 -iabBq !AppPath!tools\NewPath.txt !AppPath!tools\SysPath.txt | Findstr /i "differ">NUL 2>NUL&&WMIC ENVIRONMENT Where "name='path' And username='<SYSTEM>'" Set VariableValue='%EnvironmentPath%'>NUL 2>NUL

         ::NotePad2
        Reg Query "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\NotePad2" 2>nul | findstr /ri "NotePad2 >nul 2>nul||Goto AddNote2

        :AddNote2
            Reg add "HKLM\SOFTWARE\Classes\*\shell\NotePad2" /ve /t REG_SZ /d "使用 NotePad2 打开" /f>NUL 2>NUL
            Reg add "HKLM\SOFTWARE\Classes\*\shell\NotePad2" /v "Icon" /t REG_SZ /d "%Tools%\Notepad2.exe" /f>NUL 2>NUL
            Reg add "HKLM\SOFTWARE\Classes\*\shell\NotePad2\command" /ve /t REG_SZ /d "\"%Tools%\Notepad2.exe\" \"%%1\"" /f>NUL 2>NUL
            Reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Notepad2.exe" /ve /t REG_SZ /d "%Tools%\Notepad2.exe" /f

         ::AddCMDHere  
        Reg Query "HKCR\Directory\Background\shell\OpenCMDHere" 2>nul | findstr /ri "OpenCMDHere” >nul 2>nul||Goto AddCMDHere

        :AddCMDHere
            Reg add "HKCR\Directory\Background\shell\OpenCMDHere" /ve /t REG_SZ /d "在此处打开命令提示符" /f>NUL 2>NUL
            Reg add "HKCR\Directory\Background\shell\OpenCMDHere" /v "Icon" /t REG_SZ /d "cmd.exe" /f>NUL 2>NUL
            Reg add "HKCR\Directory\Background\shell\OpenCMDHere" /v "ShowBasedOnVelocityId" /t REG_DWORD /d "6527944" /f>NUL 2>NUL
            Reg add "HKCR\Directory\Background\shell\OpenCMDHere\command" /ve /t REG_SZ /d "cmd.exe /s /k pushd \"%%V\"" /f

  goto :EOF


:Service
      ::获取服务的安装状态,判断服务是否存在
    Echo 正在检查Alist开机自启服务安装状态。
    WMIC Service  GET name | Findstr /i "%ServiceName%" >NUL 2>NUL&&Echo %ServiceName% 已经安装过了 ||Echo 没有安装,正在安装Alist开机自启&&nssm64 install %ServiceName% %AppPath%%AppName%.exe server&TIMEOUT /t 2 >NUL
    nssm64 restart %ServiceName%>NUL 2>NUL&TIMEOUT /t 2 >NUL
    nircmd service restart %RaiD%>NUL 2>NUL&TIMEOUT /t 2 >NUL
    goto :EOF

:AlistWeb
    Echo 恭喜成功,%AppName%的版本为&&%AppName% version | gawk64 -F": " "NR==5 {print $2}"
    rem !AppPath!!AppName!.exe admin&TIMEOUT /t 15 >NUL
    Echo =====请设置好您的ALIST,然后按任意键继续===
    Echo 恭喜恭喜,贺喜贺喜,Alist终于被您功能的征服了。>password.txt
    Echo 下面是用户和密码,用于登录后台和设置RaiDrive>>password.txt
    Echo --------------下面是用户名-------------->>password.txt
    Echo admin>>password.txt
    Echo --------------下面是密码-------------->>password.txt
    php-mini.exe -r "print_r (exec('cd /d !AppPath!&&%AppName%.exe admin 2>&1', $res));"| gawk64 -F": " "{print $2}">>password.txt
    nircmd exec show "notepad password.txt"
        Echo 开始打开ALIST界面
    nircmd shexec "open" "http://localhost:5244/" 
    TIMEOUT /t 15 >nul
    nircmd exec show jpegview %Tools%\RaiDrive.png

     ::配置防火墙,防止外网无法访问
    net start MpsSvc>NUL 2>NUL
    sc config MpsSvc start=auto >NUL 2>NUL
    Netsh Advfirewall Set Allprofiles State ON>NUL 2>NUL
    Netsh Advfirewall Firewall Show Rule "%AppName%TCPIn" | Findstr /i "5244" >NUL 2>NUL||Netsh AdvFirewall Firewall Add Rule Name="%AppName%TCPIn" Protocol=TCP Dir=In Localport=5244 Action=Allow Enable=Yes&&Echo 添加防火墙成功
    Netsh Advfirewall Firewall Show Rule "%AppName%NetIn" | Findstr /i "NetIn" >NUL 2>NUL||Netsh AdvFirewall Firewall Add Rule Name="%AppName%NetIn" Dir=In Program="%AppPath%%AppName%.exe" Action=Allow Enable=yes
    goto :EOF

:Latest
      ::获取云上最新版本
    Curl --ssl-no-revoke -sL !ReleasesUrl! | jq64 -r ".[0].name" >LatestVersion.txt
       ::设置最新版本信息为变量LatestVersion
    for /f "delims=" %%a in (LatestVersion.txt) do SET LatestVersion=%%a
    goto :EOF


:Current
       ::获取本地版本信息
    %AppPath%%AppName%.exe version | gawk64 -F": " "NR==5 {print $2}" >CurrentVersion.txt
       ::设置版本信息为变量CurrentVersion
    for /f "delims=" %%b in (CurrentVersion.txt) do SET CurrentVersion=%%b
    goto :EOF

:Down
      ::获取下载地址
    SET AppFile=amd64.zip
    Curl --ssl-no-revoke -sL !ReleasesUrl! | jq64 -r ".[0].assets[].name" | grep -e "amd64.zip">AppFile.txt
    for /f "delims=" %%p in (AppFile.txt) do SET AppFile=%%p
    Curl --ssl-no-revoke -sL !ReleasesUrl! | jq64 -r ".[0].assets[].browser_download_url" | grep -e "%AppFile%">down.txt
    for /f "delims=" %%d in (down.txt) do SET AppUrl=https://ghproxy.com/%%d

      ::下载安装
    Echo 正在下载中......
    Curl -# -C - -O --output-dir !AppPath! !AppUrl!  --ssl-no-revoke -L
    bz x -y -o:!AppPath! %AppFile%
    rem Echo Y|unzip -o -d %AppPath% %AppFile% >NUL 2>NUL

    goto :EOF


:Taskschd
    Echo 正在添加计划任务,自动更新Alist
    SET var=0
      ::读取任务计划中的%AppUp%任务,如果有就显示,如果没有就报错
    schtasks /query /tn %AppUp%  | Findstr /m "%AppUp%" >NUL 2>NUL&&SET var=1  
      ::检查上一条指令是否产生与ABC有关的信息,如果没有就执行X;如过有就执行Y
    if ERRORLEVEL 1 (schtasks /create /ru system /tn "%AppUp%" /tr !AppPath!%AppUp%.bat /ST 21:30 /sc weekly /mo 1 /d FRI&&Echo 添加升级任务成功)else (Echo 升级任务已经存在)
    TIMEOUT /t 2 >NUL
    net start %RaiD% >NUL 2>NUL
 
    goto :EOF

:End
  ::设置RaiDrive的启动方式设置为自动延迟启动,避免Alist还没启动。Raidrive先启动导致网盘重启后无法挂载的问题。
sc config "%RaiD%" start=delayed-auto >NUL 2>NUL

 ::获取RaiDrive进程的路径
WMIC Service GET PathName | Findstr "RaiDrive" | sed64 "s/[[:space:]]*$//" | sed64 "s/\.Service\.x64//g"| head -1 >RaiDrive.txt
Findstr . RaiDrive.txt >NUL 2>NUL&&Goto KillAD || Goto UnInstallMake


:KillAD
for /f "delims=" %%r in (RaiDrive.txt) do SET RaiDrivePath=%%r
FVerTest %RaiDrivePath%|gawk64 -F.  "{print $1}"|sed64 -e "s/\[//g">CRaiDrive.txt
for /f "delims=" %%h in (CRaiDrive.txt) do SET CRaiDrive=%%h

IF %CRaiDrive% GEQ 2021 (
    Echo 检查到您系统安装的RaiDrive是最新版本,需要屏蔽广告
     ::获取msedgewebview2进程的路径
    Set BlockName=msedgewebview2
    WMIC Process Get ExecutablePath  | Findstr "%BlockName%" | sed64 "s/[[:space:]]*$//" |head -1 >BlockPath.txt
    for /f "delims=" %%f in (BlockPath.txt) do SET BlockPath=%%f
    Netsh Advfirewall Firewall show rule "%BlockName%" | Findstr /i "%BlockName%" >NUL 2>NUL&&Echo 已经屏蔽过了广告,无需再配置规则
    Netsh Advfirewall Firewall show rule "%BlockName%" | Findstr /i "%BlockName%" >NUL 2>NUL||Netsh Advfirewall Firewall Add Rule Name="%BlockName%" Dir=out Action=block Program="%BlockPath%" Enable=yes>nul&net stop RaiDrive.Service >NUL 2>NUL&&net start RaiDrive.Service >NUL 2>NUL &&nircmd exec show %RaiDrivePath%&&Echo 已经成功屏蔽RaiDrive的广告,重启后生效。
)


:UnInstallMake
  :: 生成卸载文件
       ::choco的查找字串
Echo %ALLUSERSPROFILE%\chocolatey\bin | sed64 -e "s/\\/\\\\/g" | sed64 "s#\:#\\\:#g" >!AppPath!tools\ChocoPathVar.txt
for /f "delims=" %%c in (!AppPath!tools\ChocoPathVar.txt) do SET ChocoPathVar=%%c

       ::APP的查找字串
Echo %AppUPath% | sed64 "s/$/end/g" | sed64 "s/\\*end//g" | sed64 -e "s/\\/\\\\/g" | sed64 "s#\:#\\\:#g" >!AppPath!tools\AppUPathVar.txt
for /f "delims=" %%o in (!AppPath!tools\AppUPathVar.txt) do SET AppUPathVar=%%o

      ::Tools的查找字串
Echo %Tools% | sed64 "s/$/end/g" | sed64 "s/\\*end//g" | sed64 -e "s/\\/\\\\/g" | sed64 "s#\:#\\\:#g" >!AppPath!tools\ToolsVar.txt
for /f "delims=" %%m in (!AppPath!tools\ToolsVar.txt) do SET ToolsVar=%%m

      ::AppPath的查找字串
Echo %AppPath% | sed64 "s/$/end/g" | sed64 "s/\\*end//g" | sed64 -e "s/\\/\\\\/g" | sed64 "s#\:#\\\:#g" >!AppPath!tools\AppPathVar.txt
for /f "delims=" %%h in (!AppPath!tools\AppPathVar.txt) do SET AppPathVar=%%h

       ::TOOLS的查找字串
Echo %AppPath%tools | sed64 -e "s/\\/\\\\/g" | sed64 "s#\:#\\\:#g" >!AppPath!tools\ToolsPathVar.txt
for /f "delims=" %%t in (!AppPath!tools\ToolsPathVar.txt) do SET ToolsPathVar=%%t
      ::过滤掉也就是删除这些环境变量

more !AppPath!tools\NewPath.txt | sed64 -e "s/;/\n/g" | Findstr /irv "%ChocoPathVar% %AppPathVar% %ToolsPathVar% %AppUPathVar% %ToolsVar%" | Findstr /v "^$" | gawk64 "{printf $0\";\"}">!AppPath!tools\DelPathVar.txt
      ::替换行首第一个字符
rem sed64 -ri "s/^.//g" !AppPath!tools\DelPathVar.txt
      ::替换行未最后一个字符
rem sed64 -ri "s/(.)$//g" !AppPath!tools\DelPathVar.txt
rem more tools\NewPath.txt | sed64 -e "s/;/\n/g" | Findstr /irv  "d\:\\softapp\\alist C\:\\ProgramData\\chocolatey\\bin d\:\\softapp\\alist\\tools"| Findstr /v "^$" | sort64 -ub | gawk64 "{printf $0\";\"}"

     ::再生成新的变量到命令行中。
for /f "delims=" %%v in (!AppPath!tools\DelPathVar.txt) do SET DelPathVar=%%v


rem IF NOT EXIST "!AppPath!!AppName!卸载.CMD" (
    Echo @Echo off>!AppPath!!AppName!卸载.CMD
    Echo set BakName=%%date:~0,4%%%%date:~5,2%%%%date:~8,2%%%%TIME:~0,2%%%%TIME:~3,2%%%%TIME:~6,2%%>>!AppPath!!AppName!卸载.CMD
    Echo SETlocal enabledelayedexpansion>>!AppPath!!AppName!卸载.CMD
    Echo SET AppName=alist>>!AppPath!!AppName!卸载.CMD
    Echo set AppPath=!AppPath!>>!AppPath!!AppName!卸载.CMD
    Echo Echo title Alist卸载管理器 V1.0 by Fireye>>!AppPath!!AppName!卸载.CMD
    Echo Echo  ========================== Alist卸载管理器 V1.0 =========================>>!AppPath!!AppName!卸载.CMD
    Echo Echo                        南無大願地藏王菩薩 地獄不空 誓不成佛                  >>!AppPath!!AppName!卸载.CMD
    Echo Echo  =========================================================================>>!AppPath!!AppName!卸载.CMD
    Echo Echo 正在備份相關數據........>>!AppPath!!AppName!卸载.CMD
    Echo rem xcopy "!AppPath!Data\" "!AppPath!Backup\Data" /e /h /y /c /r>>!AppPath!!AppName!卸载.CMD
    Echo rem xcopy "%ALLUSERSPROFILE%\chocolatey\" "!AppPath!Backup\chocolatey" /e /h /y /c /r>>!AppPath!!AppName!卸载.CMD
    Echo choco uninstall raiDrive -y>>!AppPath!!AppName!卸载.CMD
    Echo rem xcopy "!AppPath!Tools\" "!AppPath!Backup\" /e /h /y /c /r>>!AppPath!!AppName!卸载.CMD
    Echo "zip -r -9 !AppPath!Backup\Data_ffffBakNamegggg.zip !AppPath!Data">>!AppPath!!AppName!卸载.CMD
    Echo "rem zip -r -9 !AppPath!Backup\chocolatey_ffffBakNamegggg.zip %ALLUSERSPROFILE%\chocolatey">>!AppPath!!AppName!卸载.CMD
    Echo "rem zip -r -9 !AppPath!Backup\AlistPlus_ffffBakNamegggg.zip %AppUPath%">>!AppPath!!AppName!卸载.CMD
    Echo "TIMEOUT /t 5 >NUL 2>NUL">>!AppPath!!AppName!卸载.CMD
    Echo Echo 正在刪除相關文件........>>!AppPath!!AppName!卸载.CMD
    Echo nssm64 stop %ServiceName%>>!AppPath!!AppName!卸载.CMD
    Echo nssm64 remove %ServiceName% confirm>>!AppPath!!AppName!卸载.CMD
    Echo rd /s /q %ALLUSERSPROFILE%\chocolatey\>>!AppPath!!AppName!卸载.CMD
    Echo rd /s /q %LOCALAPPDATA%\NuGet>>!AppPath!!AppName!卸载.CMD
    Echo rd /s /q %TMP%\chocolatey>>!AppPath!!AppName!卸载.CMD
    Echo Echo 正在刪除相關计划任务........>>!AppPath!!AppName!卸载.CMD
    Echo schtasks /delete /tn "%AppUp%" /f>>!AppPath!!AppName!卸载.CMD
    Echo schtasks /delete /tn "AlistUpgrade" /f>>!AppPath!!AppName!卸载.CMD
    Echo "TIMEOUT /t 5 >NUL 2>NUL">>!AppPath!!AppName!卸载.CMD
    Echo Echo 正在卸载相關文件........>>!AppPath!!AppName!卸载.CMD
    Echo "for /f aaadelims=bbb %%%%%d in ('dir /b !AppPath!tools') do ( ">>!AppPath!!AppName!卸载.CMD
    Echo echo 正在删除,%%%%%d>>!AppPath!!AppName!卸载.CMD
    Echo  del /q %WinDir%\%%%%%d >NUL 2>NUL>>!AppPath!!AppName!卸载.CMD
    Echo Echo del /q %Tools%\%%%%%d >NUL 2>NUL>>!AppPath!!AppName!卸载.CMD
    Echo  del /q %WinDir%\%%%%%d.lnk >NUL 2>NUL>>!AppPath!!AppName!卸载.CMD
    Echo )>>!AppPath!!AppName!卸载.CMD
    Echo Echo 正在删除相关环境变量........>>!AppPath!!AppName!卸载.CMD
    Echo WMIC ENVIRONMENT Where "name='path' And username='<SYSTEM>'" set VariableValue='%DelPathVar%'>>!AppPath!!AppName!卸载.CMD
    Echo WMIC ENVIRONMENT Where "name='ChocolateyLastPathUpdate'" Delete>>!AppPath!!AppName!卸载.CMD
    Echo WMIC ENVIRONMENT Where "name='ChocolateyInstall'" Delete>>!AppPath!!AppName!卸载.CMD
    Echo WMIC product Where name="RaiDrive" call uninstall>>!AppPath!!AppName!卸载.CMD
    Echo echo 正在清理相关注册表>>!AppPath!!AppName!卸载.CMD
    Echo Reg delete "HKCR\Directory\Background\shell\OpenCMDHere" /f>>!AppPath!!AppName!卸载.CMD
    Echo Reg delete "HKLM\SOFTWARE\Classes\*\shell\NotePad2" /f>>!AppPath!!AppName!卸载.CMD
    Echo Reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Notepad2.exe" /f>>!AppPath!!AppName!卸载.CMD
    Echo Reg delete "HKCR\Directory\Background\shell\OpenCMDHere" /f>>!AppPath!!AppName!卸载.CMD
    Echo echo 正在清理相关防火墙规则>>!AppPath!!AppName!卸载.CMD
    Echo Netsh AdvFirewall Firewall del rule %BlockName%>>!AppPath!!AppName!卸载.CMD
    Echo Netsh AdvFirewall Firewall del rule %AppName%NetIn>>!AppPath!!AppName!卸载.CMD
    Echo Netsh AdvFirewall Firewall del rule %AppName%TCPIn>>!AppPath!!AppName!卸载.CMD
    Echo RunDll32.exe USER32.DLL,UpdatePerUserSystemParameters>>!AppPath!!AppName!卸载.CMD
    Echo gpupdate /force>>!AppPath!!AppName!卸载.CMD
    Echo "taskkill /f /im explorer.exe&&start explorer.exe">>!AppPath!!AppName!卸载.CMD
    sed64 -ri "s/^\"//g" !AppPath!!AppName!卸载.CMD
    sed64 -ri "s/\"$//g" !AppPath!!AppName!卸载.CMD
    sed64 -ri "s/aaa/\"/g" !AppPath!!AppName!卸载.CMD
    sed64 -ri "s/bbb/\"/g" !AppPath!!AppName!卸载.CMD
    sed64 -ri "s/ffff/\%%/g" !AppPath!!AppName!卸载.CMD
    sed64 -ri "s/gggg/\%%/g" !AppPath!!AppName!卸载.CMD

rem )

  ::创建桌面快捷方式
nircmd shortcut "!AppPath!!AppName!PLUS.CMD" "~$folder.desktop$" "Alist更新">NUL 2>NUL
nircmd shortcut "!AppPath!!AppName!卸载.CMD" "~$folder.desktop$" "Alist卸载">NUL 2>NUL
nircmd shortcut "!AppPath!!AppName!.exe" "~$folder.windir$" "Alist">NUL 2>NUL
nircmd urlshortcut "http://127.0.0.1:5244" "~$folder.desktop$" "Alist后台">NUL 2>NUL
nircmd shortcut "!AppPath!password.txt" "~$folder.desktop$" "Alist密碼">NUL 2>NUL
nircmd urlshortcut "https://alist.nn.ci/zh/guide/#what-s-this" "~$folder.desktop$" "Alist帮助文档">NUL 2>NUL
nircmd shortcut "!AppPath!!AppName!.exe" "~$folder.windows$" "Alist">NUL 2>NUL
copy %WinDir%/alist.lnk !AppPath!\tools>NUL 2>NUL

   ::自动清静之前的VBS启动试
Echo 自動清理之前設置過ALIST開機,刪除之前先進行備份....
set Startup=%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\
md !AppPath!Backup>NUL 2>NUL
xcopy "%Startup%" "!AppPath!Backup\" /e /h /y /c /r >NUL 2>NUL
rem del /s /q %Startup%*.bat %Startup%*.vbs %Startup%*.cmd %Startup%*.lnk
    ::清理相关垃圾
DEL /s /q RunDir.txt DRiver.txt CurrentVersion.txt down.txt LatestVersion.txt BlockPath.txt RaiDrive.txt newsize.txt oldsize.txt %AppName%Path.txt AppFile.txt CRaiDrive.txt NRaiDrive.txt>NUL 2>NUL
pause
     ::复制本脚本到安装目录
IF "Echo !AppPath! | chcase /LOWER | head -1" NEQ "Echo %RunPath%\ | chcase /LOWER | head -1" (
  Echo IF NOT EXIST "!AppPath!%AppUp%.CMD" copy %RunPath%\%AppUp%.CMD !AppPath! /y>%RunPath%\copycmd.bat
  nircmd execmd %RunPath%\copycmd.bat
)

  ::CLS&Echo.&
Echo.&Echo 完成 &TIMEOUT /t 10 >NUL&EXIT

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
成长哥哥 + 1 + 1 只能说好用极了!!!

查看全部评分

安遇予而欢 发表于 2022-11-16 16:56
哥,我的WIN11闪一下就没了好像什么也没发生...
vip198926 发表于 2022-11-19 17:15
fireye 发表于 2022-11-16 16:43
不会用的同志,下载这个放任何一个目录,记得使用前修改文件里的路径为你自己的。

WIN11闪退

PS C:\Users\adminw\Desktop\AlistUpgrade> .\AlistUpgrade.bat
============升级安装============
'nssm64' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
'jq64' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
chaes 发表于 2023-9-4 10:57
请问下载这个程序放在D盘运行后,自动布署所有的配置,是这个意思吗?
光之守护天使 发表于 2023-9-9 17:22
恭喜恭喜,賀喜賀喜,Alist終於搞定了。
下麵是用戶和密碼,用於登錄後臺和設置RaiDrive
--------------以下是用戶名--------------
admin
--------------以下是密碼--------------


密码是空的,要填什么
脚本小子 发表于 2023-10-15 22:02
如果要卸载要怎么搞
 楼主| fireye 发表于 2023-2-7 08:08
tyz1050 发表于 2023-2-6 20:11
我放到D盘根目录了,到这步一直卡着一小时了

远程看一下
yingchengfeng 发表于 2022-11-16 16:11
学习了,涨姿势
安遇予而欢 发表于 2022-11-16 16:27
哥...不会用...救救
ZKFF1010 发表于 2022-11-16 16:38
脑袋开始晕了
 楼主| fireye 发表于 2022-11-16 16:43
本帖最后由 fireye 于 2022-12-3 09:43 编辑

不会用的同志,下载这个放任何一个目录,记得使用前修改文件里的路径为你自己的。
bufeiyan1011 发表于 2022-11-16 16:57
不修改文件的路径可以运行吗?下载完成会有什么提示吗?
 楼主| fireye 发表于 2022-11-16 17:04
bufeiyan1011 发表于 2022-11-16 16:57
不修改文件的路径可以运行吗?下载完成会有什么提示吗?

可以,在d:\softapp\alist里,会自动弹出网页,http://127.0.0.1:5244
 楼主| fireye 发表于 2022-11-16 17:04
安遇予而欢 发表于 2022-11-16 16:56
哥,我的WIN11闪一下就没了好像什么也没发生...

以管理用身份运行
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-27 03:29

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表