2009-07-20 16 views
6

¿Cómo se puede enumerar un archivo por lotes en la lista de inicio de Windows?Batch/CMD: Agregar archivos a la lista de inicio

No importa si va desde el registro o no.

SI con el registro, indique también el comando para ELIMINAR la entrada del registro.

Esto debería funcionar bajo todas las versiones de ME a 7 por favor.

De lo contrario solo XP/Vista/7.

Gracias.

+0

puede crear una tarea en el programador de tareas de agregar los archivos de acciones que se disparan al inicio – Jaider

Respuesta

10

No estoy seguro de que lo entendamos, pero si lo que quiere es una manera fácil de ejecutar un comando/lote al inicio, ¿por qué no simplemente ponerlo en la carpeta All Users\Startup?
Hacerlo programáticamente significaría simplemente copiar un archivo a ese directorio.
Por ejemplo, en Windows Vista, la ruta completa de ese directorio es:

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

(se puede usar sustituir el principio de la línea con %ProgramData% o %AllUsers%\ProgramData para que sea más global - por ejemplo, cuando Windows es instalado en D :).

+0

Gracias! ¡para la ayuda! –

+1

Mi instalación de Win8.1 usa 'Arranque' en lugar de 'Arranque'. Alguien sabe cómo alcanzar esta carpeta más genéricamente? Por ejemplo, shell: Common Startup, aunque parece que no funciona en un archivo por lotes. – Chris

3

No uso Windows7 (podría obtener un control en la versión beta en breve), pero creo que el lugar correcto siempre se tomará mejor del registro, debido a que las versiones de Windows están localizadas. Mi propia versión de C: \ ProgramData \ Microsoft \ Windows \ Start Menu \ Programs \ Startup aquí se parece más a "C: \ Documents and Settings \ All Users \ Menu Démarrer \ Programs \ Démarrage" (de XP, de Por supuesto)
-10 para programadores que usan nombres de directorios codificados (sí, algunos instaladores crearán directorios de idiomas en inglés/diferentes en la instalación).
-1 para Microsoft localizar los nombres de directorio ...
De todos modos aquí es un snipet para esto, válido para XP al menos:

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: Porque reg.exe de Windows2000 y XP tienen diferentes argumentos de comando, tal vez el W7 ha cambiado a o así que pruébelo antes de establecer y olvidar.
2: Para obtener una lista de todos los directorios del sistema, ejecute el comando: reg query "HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Shell Folders" y leer las líneas. Es posible que desee cambiar el "Inicio común" por otra cosa, si las cosas son muy diferentes con W7.
3: También hay una lista personal/de usuario dentro de HKEY_CURRENT_USER si desea que solo algunos usuarios lo puedan usar.

+0

No funciona en Win7: la salida de reg es diferente, por lo que devuelve REG_SZ. Puede crear una versión diferente para Win7, aunque voy por el registro como se sugiere [aquí] (http://stackoverflow.com/a/13880705/1308967) – Chris

0

xcopy C: \ Users \ NAME \ Desktop \ Batch.bat C: \ ProgramData \ Microsoft \ Windows \ "Menú de Inicio" \ Programs \ StartUp/O/X/E/H/K es el comando correcto para Windows 10. simplemente cambie la segunda ruta a su versión, y recuerde siempre hay un espacio, coloque un "antes de la palabra antes del espacio, y después de la palabra siguiente. , sin embargo, DEBE estar abierto en el administrador, por lo que después de algunas investigaciones, encontré que un archivo por lotes podría usarse para iniciar un archivo por lotes y ejecutarlo en modo administrativo: runas/user: administrador de C: \ data \ mybatchfile.bat que debería funcionar

Cuestiones relacionadas