können Sie ein Programm beim Windows-Start mithilfe einer Bat-Datei starten und ihm den Dateipfad senden

können Sie ein Programm beim Windows-Start mithilfe einer Bat-Datei starten und ihm den Dateipfad senden

Kann eine Bat- oder VBS-Datei ein Argument (einen Pfad zu einer EXE-Datei) annehmen und dann eine Verknüpfung zu dieser Datei erstellen und im Startordner ablegen oder einen Registrierungseintrag hinzufügen, um diese EXE beim Windows-Start auszuführen?

aber ich möchte, dass dasselbe Skript auch den Starteintrag entfernen kann (auf allen Betriebssystemversionen).

Ich gehe also davon aus, dass dem Skript zwei Parameter/Argumente gesendet werden müssen: 1 - die Datei/EXE, die beim Start ausgeführt werden soll 2 - ob der Eintrag beim Start hinzugefügt oder entfernt werden soll

Ist das möglich?

Antwort1

Zunächst möchte ich Ihnen raten, bei allen Betriebssystemen, die älter als Vista sind, die Speicherorte der Run-Keys in der Registrierung noch einmal zu prüfen, da es lange her ist, dass ich damit gearbeitet habe, und es daher Unterschiede geben kann, an die ich mich nicht erinnere.

Wenn ich Ihre Frage richtig verstehe, sollte dieses Batch-Skript das tun, was Sie möchten. Es bietet Ihnen ein einfaches Menü, in dem Sie auswählen können, ob Sie ein Programm zu den Ausführungsschlüsseln (Startup) hinzufügen oder daraus entfernen möchten. Anschließend können Sie den Programmnamen und den Pfad zur ausführbaren Datei eingeben.

: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

Wenn Sie alternativ nur dasselbe Programm hinzufügen oder entfernen müssen und nicht mehrere Programmnamen oder EXE-Pfade eingeben müssen, können Sie das Skript wie folgt ändern und %keyname% durch Ihren Programmnamen und %expath% durch den Pfad zu Ihrer ausführbaren Datei (ohne die %) ersetzen und es dann speichern. Stellen Sie sicher, dass Ihr Schlüsselname beim Hinzufügen und Entfernen derselbe ist.

Sie können die „goto begin“-Zeilen auch durch „exit“ ersetzen, wenn Sie das Skript nach der ausgewählten Aktion einfach beenden möchten.

: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

verwandte Informationen