在启动时运行批处理文件

时间:2014-01-19 15:00:17

标签: batch-file windows-7 startup

有没有办法在系统启动时在批处理文件中启动多个程序?除此之外,在该批处理文件中,我希望能够说:一旦我执行一个程序,等到该程序完全加载,然后执行下一个列出的程序。

任何帮助将不胜感激。

9 个答案:

答案 0 :(得分:64)

我在Win7中遇到了关于在启动时运行脚本(.bat)的问题(当计算机启动时与有人登录时),这将使用netsh修改网络参数。最终为我工作的是以下内容:

  1. 使用管理员帐户登录
  2. 点击开始并输入“任务计划程序”并点击返回
  3. 点击“任务计划程序库”
  4. 点击屏幕右侧的“创建新任务”,按如下方式设置参数:

    一个。将用户帐户设置为SYSTEM

    湾选择“以最高权限运行”

    ℃。选择适用于Windows7的操作系统

  5. 点击“触发器”标签,然后点击“新建...” 从下拉菜单中选择“启动时”,单击“已启用”并单击“确定”
  6. 点击“操作”标签,然后点击“新建...” 如果您正在运行.bat文件,请使用cmd作为put的程序 / c .bat 在“添加参数”字段中
  7. 单击“确定”,然后单击“创建任务”面板上的“确定”,现在就可以了 预定。
  8. 将.bat脚本添加到任务事件中指定的位置。
  9. 享受。

答案 1 :(得分:61)

要在启动时运行批处理文件:开始>>所有节目>>右键单击启动>>打开>>右键单击批处理文件>>创建快捷方式>>将快捷方式拖到启动文件夹

该文件夹的路径为:[D|C]:\Profiles\{User}\‌​AppData\Roaming\Micro‌​soft\Windows\Start Menu\Programs\Startu‌​p

答案 2 :(得分:14)

要在系统启动时启动批处理文件,您还可以使用注册表项。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

在这里你可以创建一个字符串。作为名称,您可以选择任何内容,数据是文件的完整路径。

还有注册表项

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce

仅在系统的下一次启动时运行。

答案 3 :(得分:11)

有几种方法可以在启动时运行批处理文件。我经常使用的是通过任务调度程序。如果按下Windows键然后键入任务计划程序,它将作为选项出现(或通过管理工具查找)。

创建新任务时,您可以选择触发选项,例如特定用户的“登录时”,工作站解锁等。然后在您选择的操作中启动程序并将完整路径放入批处理脚本(还有一个选项可以放置任何命令行args)。

这是一个在Firefox中启动Stack Overflow的示例脚本:

@echo off

title Auto launch Stack Overflow


start firefox http://stackoverflow.com/questions/tagged/python+or+sql+or+sqlite+or+plsql+or+oracle+or+windows-7+or+cmd+or+excel+or+access+or+vba+or+excel-vba+or+access-vba?sort=newest

REM Optional - I tend to log these sorts of events so that you can see what has happened afterwards
echo %date% %time%, %computername% >> %logs%\StackOverflowAuto.csv

exit

答案 4 :(得分:3)

转到运行(WINDOWS + R),然后 类型 shell:startup ,将您的.bat文件粘贴到那里!

答案 5 :(得分:1)

1. 将以下几行复制到记事本中。

Set WshShell = CreateObject("WScript.Shell") 
WshShell.Run chr(34) & "C:\Users\toto\your_file.bat" & Chr(34), 0
Set WshShell = Nothing

注意:根据您的要求在脚本中相应地替换批处理文件名/路径。

2. 使用 .VBS 扩展名保存文件,例如 launch_bat.vbs

3. 创建新的 .bat 文件,在我们的例子中是 your_file.bat

4. 写入 .bat 文件的内容。 示例:

 @echo off
    php c:\laragon\www\my_app\artisan serve --host=127.0.0.1 --port=8000

5. 运行 your_file.bat 和 ejoy :)

答案 6 :(得分:0)

如果您的Windows语言不同于英语,则可以通过

启动任务计划程序。
  1. Windows + X
  2. 选择“计算机管理”的语言翻译
  3. 按照prankin提供的答案中的说明进行操作

答案 7 :(得分:0)

另一种选择是将批处理文件作为服务运行,并将服务的启动设置为“ 自动”或“ 自动(延迟启动)”。 请查看此question,以获取有关操作方法的更多信息,我个人最喜欢NSSM。

答案 8 :(得分:0)

RunOnce

RunOnce是一个选项,它具有一些键,可用于指向启动时启动的命令(取决于它是否涉及用户或整个系统):

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce

设置值:

reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce" /v MyBat /D "!C:\mybat.bat"

开头带有设置和感叹号,并且如果脚本的值不为0,则不会删除注册表项,并且每次启动时都会执行该脚本

SCHTASKS

您可以使用SCHTASKS和触发事件:

SCHTASKS /Create /SC ONEVENT /MO ONLOGON /TN ON_LOGON /tr "c:\some.bat" 

SCHTASKS /Create /SC ONEVENT /MO ONSTART/TN ON_START /tr "c:\some.bat"

启动文件夹

您还有两个启动文件夹-一个用于当前用户,一个用于全局。 您可以在此处复制脚本(或快捷方式)以在启动时启动文件

::the global one
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
::for the current user
%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup