Windows 시작 시 bat 파일을 사용하여 프로그램을 시작하고 파일 경로를 보낼 수 있나요?

Windows 시작 시 bat 파일을 사용하여 프로그램을 시작하고 파일 경로를 보낼 수 있나요?

bat 파일이나 vbs 파일이 인수(exe 파일의 경로)를 취한 다음 해당 파일에 대한 바로 가기를 만들고 시작 폴더에 넣거나 Windows 시작 시 해당 exe를 실행하기 위한 레지스트리 항목을 추가할 수 있습니까?

하지만 동일한 스크립트가 시작 항목도 제거할 수 있기를 원합니다(모든 OS 버전에서).

따라서 스크립트에 두 개의 매개변수/인수를 보내야 한다고 가정합니다. 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%를 실행 파일 경로(% 제외)로 변경한 다음 저장하세요. 추가 및 제거 시 키 이름이 동일한지 확인하세요.

선택한 작업 후에 스크립트를 종료하려는 경우 "goto start" 줄을 "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

관련 정보