本帖最后由 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
|