Board logo

标题: [文件操作] 求助批处理开机自动运行程序 [打印本页]

作者: realjoko    时间: 2009-4-21 16:47     标题: 求助批处理开机自动运行程序

开机启动批处理文件,然后问是否[Y/N]运行a程序,比如c:\a.exe,
如果输入为Y的话,启动a程序,如果输入N的话,退出,如果无动作,60秒后自动启动a程序
谢谢大侠们帮忙
作者: GodInHell    时间: 2009-4-21 16:55

可以参考这里:
http://bbs.bathome.net/viewthrea ... amp;page=1#pid26024
作者: htnet11    时间: 2009-4-21 18:04

开机自动运行?那你把写好的bat拖动到启动文件夹下面不就可以了然后写一个判断语句就ok了
  1. @echo off
  2. set /p ans=运行否?(Y/N):
  3. if '%ans%'=='y' (goto start) else if '%ans%'=='Y' (goto start) else (goto end)
  4. :start
  5. start ping 127.0.0.1
  6. exit
  7. :end
  8. exit
复制代码
把ping 换成你要的程序即可
作者: realjoko    时间: 2009-4-21 18:08

原帖由 GodInHell 于 2009-4-21 16:55 发表
可以参考这里:
http://bbs.bathome.net/viewthread.php?tid=4075&page=1#pid26024

没看懂。。。头一次写bat
作者: GodInHell    时间: 2009-4-21 18:32

  1. @echo off
  2. if not "%1"=="" goto %1
  3. reg add "hklm\software\microsoft\windows\currentversion\run" /v haha /d "%~fs0" /f >nul
  4. set "fl=c:\a.exe"
  5. del "%temp%\#" 2>nul
  6. start /b %~fs0 :aa
  7. :agn
  8. set input=&set/p input=Y启动a程序,其他任意字符退出,请输入:
  9. >"%temp%\#" type nul
  10. if /i "%input%"=="y" (start "" "%fl%")
  11. exit
  12. :aa
  13. for /l %%a in (60 -1 1) do (
  14.    title 倒计时 %%a 秒后自动退出...
  15.    if exist "%temp%\#" (
  16.       del "%temp%\#"
  17.       exit
  18.    )
  19.    ping -n 2 127.1>nul
  20. )
  21. title 自动退出...
  22. for /f "tokens=2" %%a in ('tasklist /fi "windowtitle eq 自动退出..." /nh') do (
  23.    taskkill /f /pid %%a >nul
  24. )
  25. exit
复制代码

作者: realjoko    时间: 2009-4-22 10:17

原帖由 GodInHell 于 2009-4-21 18:32 发表
@echo off
if not "%1"=="" goto %1
reg add "hklm\software\microsoft\windows\currentversion\run" /v haha /d "%~fs0" /f >nul
set "fl=c:\a.exe"
del "%temp%\#" 2>nul
start /b %~fs0 :aa
:agn
set inpu ...

谢谢这位大哥。。。但最后应该是自动启动程序,而非自动退出
作者: GodInHell    时间: 2009-4-22 12:57

其实可以自己改一改的嘛:
  1. @echo off
  2. if not "%1"=="" goto %1
  3. reg add "hklm\software\microsoft\windows\currentversion\run" /v haha /d "%~fs0" /f >nul
  4. set "fl=c:\a.exe"
  5. del "%temp%\#" 2>nul
  6. start /b %~fs0 :aa
  7. :agn
  8. set input=&set/p input=Y启动"%fl%",其他任意字符退出,请输入:
  9. >"%temp%\#" type nul
  10. if /i "%input%"=="y" (start "" "%fl%")
  11. exit
  12. :aa
  13. for /l %%a in (60 -1 1) do (
  14.    title 倒计时 %%a 秒后自动启动"%fl%"
  15.       if exist "%temp%\#" (
  16.       del "%temp%\#"
  17.       exit
  18.    )
  19.    ping -n 2 127.1>nul
  20. )
  21. start "" "%fl%"
  22. exit
复制代码

作者: realjoko    时间: 2009-4-22 14:14

谢谢楼上这位大哥,
又发现一个新问题,这个批处理在xp下执行完毕能自动关闭窗口,但是在2000下面却无法关闭窗口,请问如何解决呢?
作者: Batcher    时间: 2009-4-22 14:54     标题: 回复 8楼 的帖子

你确定自己的Win2000系统中有reg命令?




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2