2009-07-20 3 views
6

Как пакетный файл может быть включен в список автозагрузки Windows?Пакет/CMD: добавление файлов в список автозагрузки

Не имеет значения, идет ли он из реестра или нет.

ЕСЛИ с реестром, пожалуйста, дайте также команду УДАЛИТЬ запись реестра.

Это должно работать под всеми версиями от ME до 7, пожалуйста.

В противном случае просто XP/Vista/7.

Спасибо.

+0

Вы можете создать задачу в планировщик задач при добавлении файлов на действия, которые вызывают при запуске – Jaider

ответ

10

Не уверен, что я вас понимаю, но если вы хотите, это простой способ выполнить команду/пакет при запуске, почему бы просто не поместить его в папку All Users\Startup?
Сделать это программно просто означает копирование файла в этот каталог.
Например, в Windows Vista, полный путь к этой директории:

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup 

(вы можете использовать заменить начало строки с %ProgramData% или %AllUsers%\ProgramData, чтобы сделать его более глобальное - например, когда система Windows установлен на D :).

+0

Спасибо! для помощи! –

+1

Моя установка Win8.1 использует 'Start-up', а не' Startup'. Любой знает, как достичь эта папка более общая? Например, shell: Common Startup - хотя это не работает в пакетном файле. – Chris

3

Я не использую windows7 (возможно, вы получите чек на бета-версии в ближайшее время), но я думаю, что правильное место всегда будет лучше взято из реестра из-за локализации Windows-версий. Моя собственная версия C: \ ProgramData \ Microsoft \ Windows \ Start Menu \ Programs \ Startup здесь больше похожа на "C: \ Documents and Settings \ All Users \ Menu Démarrer \ Programs \ Démarrage" (с XP, из курс)
-10 для программистов, использующих жестко закодированные имена каталогов (да, некоторые установщики будут создавать каталоги на английском/разных языках при установке).
-1 для имен каталогов Microsoft локализации ...
В любом случае здесь является snipet для этого, действительно для XP, по крайней мере:

commonstartup.cmd

@echo off 
for /F "tokens=3 delims= " %%k in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Common Startup"^| findstr /i /c:"Common Startup"') do set StartUp=%%k 
echo StartUp="%StartUp%" 

___Notes_____
1: Поскольку reg.exe из Windows2000 и XP имеют разные аргументы команды, возможно, W7 изменился на o поэтому проверьте его до и забудьте.
2: Чтобы получить список всех системных каталогов, введите команду: рег запрос "HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Shell Folders" и читать строки. Возможно, вы захотите изменить «Общий запуск» на что-то еще, если с W7 все изменилось.
3: Существует также персональный/пользовательский список в пределах HKEY_CURRENT_USER, если вы хотите, чтобы это использовалось только для некоторых пользователей.

+0

Не работает на Win7 - выход reg отличается, поэтому возвращается REG_SZ. Вы можете создать другую версию для Win7, хотя я собираюсь для реестра, как предложено [здесь] (http://stackoverflow.com/a/13880705/1308967) – Chris

0

xcopy C: \ Users \ NAME \ Desktop \ Batch.bat C: \ ProgramData \ Microsoft \ Windows \ "Start Menu" \ Programs \ StartUp/O/X/E/H/K - правильная команда для Windows 10. просто измените второй путь к вашей версии и помните, когда есть место, место «перед словом перед пространством» и после слова после него. однако он ДОЛЖЕН быть открыт администратором, поэтому после некоторого исследования я обнаружил, что пакетный файл можно использовать для запуска другого пакетный файл и запустить его в режиме администратора: /RunAs пользователь: администратор C: \ Data \ mybatchfile.bat , которые должны работать

Смежные вопросы