Skip to content

Instantly share code, notes, and snippets.

@SummonHIM
Last active November 5, 2022 13:04
Show Gist options
  • Select an option

  • Save SummonHIM/1cd129bcbc72e18faac2b72455967b32 to your computer and use it in GitHub Desktop.

Select an option

Save SummonHIM/1cd129bcbc72e18faac2b72455967b32 to your computer and use it in GitHub Desktop.
SteamRestarter - An automate restart Steam batch script (Chinese|GBK)
@echo off
:Head
mode con cols=50 lines=30
set version=4.1
title 一键强制关闭 Steam 客户端
set langAppTitle= 一键强制关闭 Steam 客户端
set langUACTitle= [管理员模式]
set langLine=--------------------------------------------------
for /f "tokens=2 delims=[" %%a in ('ver') do for /f "tokens=2" %%b in ("%%a") do for /f "tokens=1-2 delims=." %%c in ("%%b") do set windowsVersion=%%c
if %windowsVersion% LEQ 5 (
echo Windows XP 及以下版本无法使用该脚本。
goto Quit
)
IF "%PROCESSOR_ARCHITECTURE%" EQU "amd64" (
>nul 2>&1 "%SYSTEMROOT%\SysWOW64\cacls.exe" "%SYSTEMROOT%\SysWOW64\config\system"
) ELSE (
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
)
if "%errorlevel%" == "0" (
set UAC=1
)
if exist "%appdata%\SteamRestarter\settings.bat" (
call "%appdata%\SteamRestarter\settings.bat"
goto mainMenu
)
echo 首次启动,正在尝试查找 Steam 客户端位置…
if "%PROCESSOR_ARCHITECTURE%" EQU "AMD64" (
for /f "tokens=1,2,*" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Valve\Steam" /v "InstallPath" ^| find /i "InstallPath"') do set steamPath=%%k\Steam.exe
) else (
for /f "tokens=1,2,*" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Valve\Steam" /v "InstallPath" ^| find /i "InstallPath"') do set steamPath=%%k\Steam.exe
)
if not exist "%steamPath%" (
set steamNotFoundNotice=1
goto config
)
echo,
echo 查询到路径:%steamPath%
choice /m "该路径是否正确?"
if "%ERRORLEVEL%" == "1" (
mkdir "%appdata%\SteamRestarter"
echo set steamPath=%steamPath:)=^)%>"%appdata%\SteamRestarter\settings.bat"
echo set steamArgs=>>"%appdata%\SteamRestarter\settings.bat"
call "%appdata%\SteamRestarter\settings.bat"
) else (
goto Head
)
:mainMenu
cls
echo %langAppTitle%
if "%UAC%" == "1" (
echo %langUACTitle%
) else (
echo,
)
echo %langLine%
echo [1] 强制结束 Steam 客户端
echo,
echo [2] 强制重启 Steam 客户端
echo,
echo [3] 清理系统 DNS 缓存
echo,
echo [4] 选项
echo,
echo [5] 关于
echo,
choice /c 12345 /m "请选择"
set mainMenuChoice=%ERRORLEVEL%
if "%mainMenuChoice%" == "3" goto cleanDNS
if "%mainMenuChoice%" == "4" goto config
if "%mainMenuChoice%" == "5" goto about
goto taskKill
:taskKill
cls
echo %langAppTitle%
if "%UAC%" == "1" (
echo %langUACTitle%
) else (
echo,
)
echo %langLine%
taskkill /f /im Steam.exe
if %ERRORLEVEL% NEQ 0 (
echo,
echo 关闭 Steam 客户端失败!
echo 请确认 Steam 客户端是否已启动,或尝试使用管理员打开本脚本。
echo 按任意键返回…
pause>nul
goto mainMenu
)
if "%mainMenuChoice%" == "1" (
echo,
echo 3 秒后返回主菜单…
timeout /t 3 /NOBREAK >nul
goto mainMenu
)
if "%mainMenuChoice%" == "2" (
goto startSteam
)
:startSteam
echo,
echo %langLine%
if "%steamArgs%" == "" (
echo 正在启动位于 %steamPath:)=^)% 的 Steam 客户端。
start "" "%steamPath%"
) else (
echo 正在启动位于 %steamPath:)=^)% 的 Steam 客户端,并使用启动选项:%steamArgs%
start "" "%steamPath%" %steamArgs%
)
if %ERRORLEVEL% NEQ 0 (
echo,
echo 启动 Steam 客户端失败!
echo 请尝试使用管理员打开本脚本。
echo 按任意键返回…
pause>nul
goto mainMenu
) else (
echo,
echo 3 秒后返回主菜单…
timeout /t 3 /NOBREAK >nul
goto mainMenu
)
:cleanDNS
echo,
echo %langLine%
echo 提示:使用管理员模式清理 DNS 会更有效果。
ipconfig /flushdns
echo,
echo 按任意键返回…
pause>nul
goto mainMenu
:config
cls
echo %langAppTitle%
if "%UAC%" == "1" (
echo %langUACTitle%
) else (
echo,
)
echo %langLine%
if "%steamNotFoundNotice%" == "1" (
echo 错误:未查询到 Steam 客户端位置。
echo 请尝试手动输入位置。
echo %langLine%
)
echo [1] Steam 启动路径
echo ^> %steamPath%
echo,
echo [2] Steam 启动选项
echo ^> %steamArgs%
echo,
echo [3] 保存并返回
echo,
echo [4] 撤销并返回
echo,
choice /c 1234 /m "请选择"
set configMenuChoice=%ERRORLEVEL%
if "%configMenuChoice%" == "1" goto configPath
if "%configMenuChoice%" == "2" goto configArgs
if "%configMenuChoice%" == "3" (
mkdir "%appdata%\SteamRestarter"
echo set steamPath=%steamPath:)=^)%>"%appdata%\SteamRestarter\settings.bat"
if /i "%steamArgs%" == "null" (
echo set steamArgs=>>"%appdata%\SteamRestarter\settings.bat"
) else (
echo set steamArgs=%steamArgs%>>"%appdata%\SteamRestarter\settings.bat"
)
set steamNotFoundNotice=0
if not exist "%steamPath%" (
set steamNotFoundNotice=1
goto config
) else (
goto Head
)
)
if "%configMenuChoice%" == "4" goto Head
:configPath
echo,
echo %langLine%
choice /m "是否尝试自动获取 Steam 路径?"
if "%ERRORLEVEL%" == "1" (
if "%PROCESSOR_ARCHITECTURE%" EQU "AMD64" (
for /f "tokens=1,2,*" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Valve\Steam" /v "InstallPath" ^| find /i "InstallPath"') do set steamPath=%%k\Steam.exe
) else (
for /f "tokens=1,2,*" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Valve\Steam" /v "InstallPath" ^| find /i "InstallPath"') do set steamPath=%%k\Steam.exe
)
goto config
) else (
echo 请将 Steam 图标拖到此处,或直接输入路径。请不要将引号填入。
set /p steamPath=完成后按回车继续:
goto config
)
:configArgs
echo,
echo %langLine%
echo 请输入 Steam 启动选项。清空则输入英文:null。
set /p steamArgs=完成后按回车继续:
goto config
:about
cls
echo %langAppTitle%
if "%UAC%" == "1" (
echo %langUACTitle%
) else (
echo,
)
echo %langLine%
echo [版本号]
echo V%version%
echo,
echo [官方网站]
echo https://gist.github.com/SummonHIM/1cd129bcbc72e18faac2b72455967b32
echo,
echo Copyright %date:~0,4% SummonHIM.
echo,
echo 按任意键返回主菜单…
pause>nul
goto mainMenu
@echo off
:Head
mode con cols=50 lines=30
set version=4.1
title 一键强制关闭 Origin 客户端
set langAppTitle= 一键强制关闭 Origin 客户端
set langUACTitle= [管理员模式]
set langLine=--------------------------------------------------
for /f "tokens=2 delims=[" %%a in ('ver') do for /f "tokens=2" %%b in ("%%a") do for /f "tokens=1-2 delims=." %%c in ("%%b") do set windowsVersion=%%c
if %windowsVersion% LEQ 5 (
echo Windows XP 及以下版本无法使用该脚本。
goto Quit
)
IF "%PROCESSOR_ARCHITECTURE%" EQU "amd64" (
>nul 2>&1 "%SYSTEMROOT%\SysWOW64\cacls.exe" "%SYSTEMROOT%\SysWOW64\config\system"
) ELSE (
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
)
if "%errorlevel%" == "0" (
set UAC=1
)
if exist "%appdata%\OriginRestarter\settings.bat" (
call "%appdata%\OriginRestarter\settings.bat"
goto mainMenu
)
echo 首次启动,正在尝试查找 Origin 客户端位置…
if "%PROCESSOR_ARCHITECTURE%" EQU "AMD64" (
for /f "tokens=1,2,*" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Origin" /v "ClientPath" ^| find /i "ClientPath"') do set originPath=%%k
) else (
for /f "tokens=1,2,*" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Origin" /v "ClientPath" ^| find /i "ClientPath"') do set originPath=%%k
)
if not exist "%originPath%" (
set originNotFoundNotice=1
goto config
)
echo,
echo 查询到路径:%originPath%
choice /m "该路径是否正确?"
if "%ERRORLEVEL%" == "1" (
mkdir "%appdata%\OriginRestarter"
echo set originPath=%originPath:)=^)%>"%appdata%\OriginRestarter\settings.bat"
echo set originArgs=>>"%appdata%\OriginRestarter\settings.bat"
call "%appdata%\OriginRestarter\settings.bat"
) else (
goto Head
)
:mainMenu
cls
echo %langAppTitle%
if "%UAC%" == "1" (
echo %langUACTitle%
) else (
echo,
)
echo %langLine%
echo [1] 强制结束 Origin 客户端
echo,
echo [2] 强制重启 Origin 客户端
echo,
echo [3] 清理系统 DNS 缓存
echo,
echo [4] 选项
echo,
echo [5] 关于
echo,
choice /c 12345 /m "请选择"
set mainMenuChoice=%ERRORLEVEL%
if "%mainMenuChoice%" == "3" goto cleanDNS
if "%mainMenuChoice%" == "4" goto config
if "%mainMenuChoice%" == "5" goto about
goto taskKill
:taskKill
cls
echo %langAppTitle%
if "%UAC%" == "1" (
echo %langUACTitle%
) else (
echo,
)
echo %langLine%
taskkill /f /im Origin.exe
if %ERRORLEVEL% NEQ 0 (
echo,
echo 关闭 Origin 客户端失败!
echo 请确认 Origin 客户端是否已启动,或尝试使用管理员打开本脚本。
echo 按任意键返回…
pause>nul
goto mainMenu
)
if "%mainMenuChoice%" == "1" (
echo,
echo 3 秒后返回主菜单…
timeout /t 3 /NOBREAK >nul
goto mainMenu
)
if "%mainMenuChoice%" == "2" (
goto startOrigin
)
:startOrigin
echo,
echo %langLine%
if "%originArgs%" == "" (
echo 正在启动位于 %originPath:)=^)% 的 Origin 客户端。
start "" "%originPath%"
) else (
echo 正在启动位于 %originPath:)=^)% 的 Origin 客户端,并使用启动选项:%originArgs%
start "" "%originPath%" %originArgs%
)
if %ERRORLEVEL% NEQ 0 (
echo,
echo 启动 Origin 客户端失败!
echo 请尝试使用管理员打开本脚本。
echo 按任意键返回…
pause>nul
goto mainMenu
) else (
echo,
echo 3 秒后返回主菜单…
timeout /t 3 /NOBREAK >nul
goto mainMenu
)
:cleanDNS
echo,
echo %langLine%
echo 提示:使用管理员模式清理 DNS 会更有效果。
ipconfig /flushdns
echo,
echo 按任意键返回…
pause>nul
goto mainMenu
:config
cls
echo %langAppTitle%
if "%UAC%" == "1" (
echo %langUACTitle%
) else (
echo,
)
echo %langLine%
if "%originNotFoundNotice%" == "1" (
echo 错误:未查询到 Origin 客户端位置。
echo 请尝试手动输入位置。
echo %langLine%
)
echo [1] Origin 启动路径
echo ^> %originPath%
echo,
echo [2] Origin 启动选项
echo ^> %originArgs%
echo,
echo [3] 保存并返回
echo,
echo [4] 撤销并返回
echo,
choice /c 1234 /m "请选择"
set configMenuChoice=%ERRORLEVEL%
if "%configMenuChoice%" == "1" goto configPath
if "%configMenuChoice%" == "2" goto configArgs
if "%configMenuChoice%" == "3" (
mkdir "%appdata%\OriginRestarter"
echo set originPath=%originPath:)=^)%>"%appdata%\OriginRestarter\settings.bat"
if /i "%originArgs%" == "null" (
echo set originArgs=>>"%appdata%\OriginRestarter\settings.bat"
) else (
echo set originArgs=%originArgs%>>"%appdata%\OriginRestarter\settings.bat"
)
set originNotFoundNotice=0
if not exist "%originPath%" (
set originNotFoundNotice=1
goto config
) else (
goto Head
)
)
if "%configMenuChoice%" == "4" goto Head
:configPath
echo,
echo %langLine%
choice /m "是否尝试自动获取 Origin 路径?"
if "%ERRORLEVEL%" == "1" (
if "%PROCESSOR_ARCHITECTURE%" EQU "AMD64" (
for /f "tokens=1,2,*" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Origin" /v "ClientPath" ^| find /i "ClientPath"') do set originPath=%%k
) else (
for /f "tokens=1,2,*" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Origin" /v "ClientPath" ^| find /i "ClientPath"') do set originPath=%%k
)
goto config
) else (
echo 请将 Origin 图标拖到此处,或直接输入路径。请不要将引号填入。
set /p originPath=完成后按回车继续:
goto config
)
:configArgs
echo,
echo %langLine%
echo 请输入 Origin 启动选项。清空则输入英文:null。
set /p originArgs=完成后按回车继续:
goto config
:about
cls
echo %langAppTitle%
if "%UAC%" == "1" (
echo %langUACTitle%
) else (
echo,
)
echo %langLine%
echo [版本号]
echo V%version%
echo,
echo [官方网站]
echo https://gist.github.com/SummonHIM/1cd129bcbc72e18faac2b72455967b32
echo,
echo Copyright %date:~0,4% SummonHIM.
echo,
echo 按任意键返回主菜单…
pause>nul
goto mainMenu
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment