![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-06 08:14 |
共 48,039 主题排行 / 350,124 发帖 / 今日 0 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [求助]批处理列出所有开机启动项 |
| 可打印版本 1,275 / 8 |
| 第1楼 fjcyz | 发表于 2007-11-01 20:00 |
| 初级用户 发帖 36 积分 68 | |
|
[求助]批处理列出所有开机启动项 如题:
或者列出注册表相关键值 |
|
| 第2楼 luckboy45 | 发表于 2007-11-01 20:35 |
| 中级用户 发帖 212 积分 487 | |
|
下面是JM写的代码,可能对你有用!~
@echo off :: 考虑到程序并非都安装在系统盘下,所以还要用!str:~-1!来截取盘符 :: 如果路径中含有N个中文字符的话,此路径的最后N个字符将不显示(一个中文字符占两个字符位) :: code by jm 2006-7-27 setlocal enabledelayedexpansion echo. echo 开机自启动的程序有: echo. for /f "skip=4 tokens=1* delims=:" %%i in ('reg query HKLM\Software\Microsoft\Windows\CurrentVersion\Run') do ( set str=%%i set var=%%j set "var=!var:"=!" if not "!var:~-1!"=="=" echo !str:~-1!:!var! ) pause>nul |
|
| 第3楼 everest79 | 发表于 2007-11-02 10:44 |
| 金牌会员 发帖 1,127 积分 2,564 | |
| 第4楼 lxmxn | 发表于 2007-11-02 12:22 |
| 版主 发帖 4,938 积分 11,386 | |
|
everest79兄的代码很有特色,已经形成自己的风格了哈,暂一个。
|
|
| 第5楼 fjcyz | 发表于 2007-11-02 13:54 |
| 初级用户 发帖 36 积分 68 | |
|
FOR %%i IN (ALLUSERSPROFILE;USERPROFILE) DO CALL DIR /B /S "%%%%i%%\「开始」菜单\程序\启动"
这句 CALL 跟 %%%%i%% 的作用是什么? 我改成这样子就不行了 FOR %%i IN (ALLUSERSPROFILE;USERPROFILE) DO ( DIR /B /S "%%%%i%%\「开始」菜单\程序\启动" ) [ Last edited by fjcyz on 2007-11-2 at 01:56 PM ] |
|
| 第6楼 fjcyz | 发表于 2007-11-02 15:21 |
| 初级用户 发帖 36 积分 68 | |
|
麻烦3楼解释一下各条批处理的作用,看的头都晕了.
|
|
| 第7楼 fjcyz | 发表于 2007-11-02 18:47 |
| 初级用户 发帖 36 积分 68 | |
|
@ECHO OFF
ECHO 用户启动项 >%TEMP%\a.txt dir /b /s "%USERPROFILE%\「开始」菜单\程序\启动" >>%TEMP%\a.txt reg query HKCU\Software\Microsoft\Windows\CurrentVersion\Run | findstr /v /C:"! REG.EXE VERSION" /C:"HKEY_CURRENT_USER" >>%TEMP%\a.txt reg query HKCU\Software\Microsoft\Windows" "NT\CurrentVersion\Windows /v load | findstr /v /C:"! REG.EXE VERSION" /C:"HKEY_CURRENT_USER" >>%TEMP%\a.txt reg query HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce | findstr /v /C:"! REG.EXE VERSION" /C:"HKEY_CURRENT_USER" >>%TEMP%\a.txt reg query HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run | findstr /v /C:"! REG.EXE VERSION" /C:"HKEY_CURRENT_USER" >>%TEMP%\a.txt reg query HKCU\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce | findstr /v /C:"! REG.EXE VERSION" /C:"HKEY_CURRENT_USER" >>%TEMP%\a.txt reg query HKCU\Software\Microsoft\Windows\CurrentVersion\RunServices | findstr /v /C:"! REG.EXE VERSION" /C:"HKEY_CURRENT_USER" >>%TEMP%\a.txt reg query HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup | findstr /v /C:"! REG.EXE VERSION" /C:"HKEY_CURRENT_USER" >>%TEMP%\a.txt reg query HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnceEx | findstr /v /C:"! REG.EXE VERSION" /C:"HKEY_CURRENT_USER" >>%TEMP%\a.txt ECHO 全局启动项 >>%TEMP%\a.txt DIR /B /S "%ALLUSERSPROFILE%\「开始」菜单\程序\启动" >>%TEMP%\a.txt reg query HKLM\Software\Microsoft\Windows\CurrentVersion\Run | findstr /v /C:"! REG.EXE VERSION" /c:"HKEY_LOCAL_MACHINE" >>%TEMP%\a.txt reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce | findstr /v /C:"! REG.EXE VERSION" /c:"HKEY_LOCAL_MACHINE" >>%TEMP%\a.txt reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run | findstr /v /C:"! REG.EXE VERSION" /c:"HKEY_LOCAL_MACHINE" >>%TEMP%\a.txt reg query HKLM\SOFTWARE\Microsoft\Windows" "NT\CurrentVersion\Winlogon /v Shell | findstr /v /C:"! REG.EXE VERSION" /c:"HKEY_LOCAL_MACHINE" >>%TEMP%\a.txt reg query HKLM\SOFTWARE\Microsoft\Windows" "NT\CurrentVersion\Winlogon /v Userinit | findstr /v /C:"! REG.EXE VERSION" /c:"HKEY_LOCAL_MACHINE" >>%TEMP%\a.txt reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesOnce | findstr /v /C:"! REG.EXE VERSION" /c:"HKEY_LOCAL_MACHINE" >>%TEMP%\a.txt reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices | findstr /v /C:"! REG.EXE VERSION" /c:"HKEY_LOCAL_MACHINE" >>%TEMP%\a.txt reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce\Setup | findstr /v /C:"! REG.EXE VERSION" /c:"HKEY_LOCAL_MACHINE" >>%TEMP%\a.txt reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx | findstr /v /C:"! REG.EXE VERSION" /c:"HKEY_LOCAL_MACHINE" >>%TEMP%\a.txt if exist %TEMP%\b.txt del /f %TEMP%\b.txt for /f "delims=" %%i in (%TEMP%\a.txt) do echo %%i >>%TEMP%\b.txt CLS type %TEMP%\b.txt pause >nul 本人写的开机启动项,代码还没经过优化,画面杂了一点. [ Last edited by fjcyz on 2007-11-2 at 06:52 PM ] |
|
| 第8楼 everest79 | 发表于 2007-11-02 19:39 |
| 金牌会员 发帖 1,127 积分 2,564 | |
Originally posted by lxmxn at 2007-11-2 12:22 PM: 原来写的呀,哈哈,一直找不到借口贴上来 |
|
| 第9楼 everest79 | 发表于 2007-11-02 20:06 |
| 金牌会员 发帖 1,127 积分 2,564 | |
Originally posted by fjcyz at 2007-11-2 03:21 PM: 我用的也是通过注册表来查询,不过采用了格式化输入输出,同时用了大量的变量代替正常代码,所以看起来很复杂,你可以打开回显后观察 你上一个问题解释起来太费脑筋,论坛有相关贴子 主题应是 call 变量 延迟 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |