batファイルを使用してWindowsの起動時にプログラムを起動し、ファイルパスを送信できますか?

batファイルを使用してWindowsの起動時にプログラムを起動し、ファイルパスを送信できますか?

bat ファイルまたは vbs ファイルは引数 (exe ファイルへのパス) を受け取り、そのファイルへのショートカットを作成してスタートアップ フォルダーに配置するか、レジストリ エントリを追加して Windows の起動時にその exe を実行できますか。

しかし、同じスクリプトを使用してスタートアップ エントリも削除できるようにしたいと考えています (すべての OS バージョンで)。

したがって、スクリプトには 2 つのパラメータ/引数を送信する必要があると思います: 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 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

関連情報