Batch file 启动时运行批处理文件
在系统启动时,是否有办法在批处理文件中启动多个程序?除此之外,在批处理文件中,我想说:一旦我执行一个程序,等待该程序完全加载,然后执行下一个列出的程序Batch file 启动时运行批处理文件,batch-file,windows-7,startup,Batch File,Windows 7,Startup,在系统启动时,是否有办法在批处理文件中启动多个程序?除此之外,在批处理文件中,我想说:一旦我执行一个程序,等待该程序完全加载,然后执行下一个列出的程序 任何帮助都将不胜感激 要在启动时运行批处理文件:启动>>所有程序>>右键单击启动>>打开>>右键单击批处理文件>>创建快捷方式>>将快捷方式拖动到启动文件夹 文件夹的路径是:[D|C]:\Profiles\{User}\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startu
任何帮助都将不胜感激 要在启动时运行批处理文件:启动>>所有程序>>右键单击启动>>打开>>右键单击批处理文件>>创建快捷方式>>将快捷方式拖动到启动文件夹
文件夹的路径是:
[D|C]:\Profiles\{User}\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
有几种方法可以在启动时运行批处理文件。我通常使用的方法是通过任务调度器。如果按windows键,然后键入task scheduler,它将作为一个选项出现(或通过管理工具查找)
创建新任务时,您可以从触发器选项中进行选择,例如特定用户的“登录时”、“工作站上解锁”等。然后在操作中,您选择启动程序并将完整路径放入批处理脚本(还有一个选项用于放入所需的任何命令行参数)
以下是在Firefox中启动堆栈溢出的示例脚本:
@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
要在系统启动时启动批处理文件,还可以使用注册表项
HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
在这里您可以创建一个字符串。作为名称,您可以选择任何内容,并且数据是文件的完整路径
还有注册表项
HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
仅在系统的下一次启动时运行某个程序。我在Win7中遇到了相同的问题,即在启动时(计算机启动时)运行脚本(.bat)与在有人登录时运行脚本(.bat),这将使用netsh修改网络参数。最终对我起作用的是:
shell:startup,将.bat文件粘贴到那里 如果您的Windows语言与英语不同,您可以通过以下方式启动任务计划程序:
另一个选项是将批处理文件作为服务运行,并将服务的启动设置为“自动”或“自动(延迟启动)”。 查看此项了解有关如何操作的更多信息,我个人最喜欢NSSM。RunOnce 是一个选项,有几个键可用于指示命令在启动时启动(取决于它是否涉及用户或整个系统): 设置值:
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce" /v MyBat /D "!C:\mybat.bat"
如果脚本的值不同于0,则不会删除注册表项,每次启动时都会执行脚本
::the global one
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
::for the current user
%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
施塔克斯
您可以使用和触发事件:
SCHTASKS /Create /SC ONEVENT /MO ONLOGON /TN ON_LOGON /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
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文件,在我们的例子中您的_文件.bat
4.写下.bat文件的内容。
例如:
5.运行您的_file.bat和ejoy:)我认为这个问题最好放在超级用户身上。无论如何,启动应用程序都位于注册表和一个特殊文件夹中。你的第二个问题更复杂:你需要你想要运行的程序的帮助(它是交互式的吗?它会立即执行并返回?)我的计划是禁用加载任何启动项(在系统配置中),而只加载系统服务。然后将该系统函数替换为加载所有启动项的批处理文件。我不知道它是否会工作得更好,但我想我可能会测试它,看看是否加载速度仍然很慢(在启动时)。我要加载的程序都不需要任何交互性。这是一个优雅而强大的解决方案。如果你想提高你的技术水平,这是非常有用的。这是一个简单而快速的解决方案。如果你只想解决这个问题,它很有用。你说的启动文件夹是什么意思?它在
Win/System32
目录中吗?不,在D:\Profiles\{User}\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
Win+r中,键入“shell:Startup”奇怪的是,直接存在的bat文件不起作用,我不得不来这里学习它似乎需要一个快捷方式XD。有趣。谢谢为了实用起见,您甚至可以添加一个带有批处理文件的任务schdeuler条目。谢谢,我只是在“acti”上指向了实际的批处理文件
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "C:\Users\toto\your_file.bat" & Chr(34), 0
Set WshShell = Nothing
@echo off
php c:\laragon\www\my_app\artisan serve --host=127.0.0.1 --port=8000