您可以使用 bat 文件在 Windows 启动时启动程序并向其发送文件路径吗

您可以使用 bat 文件在 Windows 启动时启动程序并向其发送文件路径吗

bat 文件或 vbs 文件是否可以接受参数(exe 文件的路径),然后创建该文件的快捷方式并将其放置在启动文件夹中,或者添加注册表项以在 Windows 启动时运行该 exe

但我希望相同的脚本也能够删除启动项(在所有操作系统版本上)。

所以我假设脚本需要发送两个参数/参数:1 - 启动时运行的文件/exe 2 - 是否在启动时添加或删除条目

这可能吗?

答案1

首先,我建议您仔细检查任何比 Vista 更旧的操作系统在注册表中的运行键位置,因为我已经很长时间没有使用它们了,所以可能存在我不记得的差异。

如果我正确理解了您的问题,这个批处理脚本应该可以满足您的要求。它为您提供了一个简单的菜单,供您选择从运行键(启动)中添加或删除程序,然后让您输入程序名称和可执行文件的路径。

:begin
cls
@echo off
echo   Program startup Utility
echo.
echo    1. Add Program to Startup
echo    2. Remove Program From Startup
echo    x. Exit

set /p choice=  Choose A Service:
if not '%choice%'== set %choice%=choice:~0,1%

if '%choice%'=='1' goto :addstartup
if '%choice%'=='2' goto :delstartup
if '%choice%'=='x' goto :exit

:addstartup
cls
echo/
echo/
echo    Add Program to Startup
echo    or type back to go to main menu
echo/
set /p keyname= Please State Program Name:

if '%keyname%'=='back' goto :begin

set /p expath= Please Enter Path to Executible:

if '%expath%'=='back' goto :begin

reg add HKLM\Software\Microsoft\Windows\CurrentVersion\Run\ /v %keyname% /t REG_SZ /d "%expath%"

timeout /t 3 >nul

goto begin


:delstartup
cls
echo/
echo  Remove Program From Startup
reg query HKLM\Software\Microsoft\Windows\CurrentVersion\Run\ /s
echo/
set /p keyname= Please Enter Program Name:
reg delete HKLM\Software\Microsoft\Windows\CurrentVersion\Run\ /v "%keyname%" /f

timeout /t 3 >nul

goto begin

或者,如果您只需要添加或删除同一个程序,而不需要输入多个程序名称或 exe 路径,那么您可以像这样修改脚本,将 %keyname% 替换为您的程序名称,将 %expath% 替换为您的可执行文件的路径(不带 %'s),然后保存。确保您的键名在添加和删除时都相同。

如果您只想在选定操作后退出脚本,您也可以将“goto begin”行与“exit”交换。

:begin
cls
@echo off
echo   Program startup Utility
echo.
echo    1. Add Program to Startup
echo    2. Remove Program From Startup
echo    x. Exit

set /p choice=  Choose A Service:
if not '%choice%'== set %choice%=choice:~0,1%

if '%choice%'=='1' goto :addstartup
if '%choice%'=='2' goto :delstartup
if '%choice%'=='x' goto :exit

:addstartup
cls
reg add HKLM\Software\Microsoft\Windows\CurrentVersion\Run\ /v %keyname% /t REG_SZ /d "%expath%"

timeout /t 2 >nul

goto begin

:delstartup
cls
reg delete HKLM\Software\Microsoft\Windows\CurrentVersion\Run\ /v "%keyname%" /f

timeout /t 2 >nul

goto begin

相关内容