中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: [求助]怎样简化这个批处理 上一主题 | 下一主题
jinlizhpc
初级用户




积分 165
发帖 74
注册 2007-1-8
状态 离线
『楼 主』:  [求助]怎样简化这个批处理

自动关闭IDE通道命令。bat

@ ECHO.
@ ECHO.
@ ECHO.                               说   明
@ ECHO --------------------------------------------------------------------------
@ ECHO  IDE通道在这里看:设备管理器---IDE ATA/ATAPI控制器。一般可看到两个或多个。
@ ECHO  其属性内的“设备类型”,系统默认是“自动检测”,把它设为“无”可以提高
@ ECHO  开机速度。但如果以后要接硬盘或光驱,请记得把相应的通道改为“自动检测”,
@ ECHO  否则进系统后看不到它们。
@ ECHO --------------------------------------------------------------------------
@ ECHO.
@ pause
@shift
:: 修改IDE通道检测设备模式,不接设备的设置为无,提高XP启动速度
:: 建议在系统第二次重新启动检测到所有已经安装的IDE设备后运行

@set _debug=
@echo %_debug% off & setlocal ENABLEDELAYEDEXPANSION
set hkey1=HKLM\SYSTEM\CurrentControlSet\Enum\PCIIDE\IDEChannel
set hkey2=HKLM\SYSTEM\CurrentControlSet\Control\Class
echo 检测开始.........
for /f "usebackq tokens=*" %%I in (`reg query %hkey1% ^| find /i "IDEChannel\"`) do call :_check "%

%I"
@ ECHO.
@ ECHO.
@ ECHO.
echo IED通道检测设备模式设置完成。
@ ECHO.
pause  
goto :eof

:_check
::echo %1
set subkey=
for /f "usebackq tokens=3*" %%J in (`reg query %1 ^| find /i "driver"`) do set subkey=%%J
set DriverDesc=
for /f "usebackq tokens=3,4*" %%K in (`reg query "%hkey2%\%subkey%" /v DriverDesc ^| find /i  

"driverdesc"`) do set DriverDesc=%%K %%L 通道
reg query "%hkey2%\%subkey%" /v MasterDeviceType | find /i "0x0" > nul
if not %errorlevel%==1 goto _ChgMaster
echo “%DriverDesc%”的设备0上有设备存在。
goto _CheckSlave

:_ChgMaster
reg add "%hkey2%\%subkey%" /v UserMasterDeviceType /t REG_DWORD /d 3 /f >nul
echo “%DriverDesc%”的设备0上无设备,系统“检测方式”设置为无。

:_CheckSlave
reg query "%hkey2%\%subkey%" /v SlaveDeviceType | find /i "0x0" > nul
if not %errorlevel%==1 goto _ChgSlave
echo “%DriverDesc%”的设备1上有设备存在。
goto :eof

:_ChgSlave
reg add "%hkey2%\%subkey%" /v UserSlaveDeviceType /t REG_DWORD /d 3 /f >nul
echo “%DriverDesc%”的设备1上无设备,系统“检测方式”设置为无。
goto :eof


怎样简化以上的批处理,要求直截了当关闭IDE通道就行

2010-9-14 13:09
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 2 楼』:  

还没有学会怎样使用@echo off吗?



2010-9-14 21:44
查看资料  发短消息 网志   编辑帖子  回复  引用回复
676939481
新手上路





积分 8
发帖 8
注册 2010-9-15
来自 上海
状态 离线
『第 3 楼』:  

@echo off
shift
:: 修改IDE通道检测设备模式,不接设备的设置为无,提高XP启动速度
:: 建议在系统第二次重新启动检测到所有已经安装的IDE设备后运行

set _debug=
set hkey1=HKLM\SYSTEM\CurrentControlSet\Enum\PCIIDE\IDEChannel
set hkey2=HKLM\SYSTEM\CurrentControlSet\Control\Class
for /f "usebackq tokens=*" %%I in (`reg query %hkey1% ^| find /i "IDEChannel\"`) do call :_check "%

%I"
pause  
goto :eof

:_check
::echo %1
set subkey=
for /f "usebackq tokens=3*" %%J in (`reg query %1 ^| find /i "driver"`) do set subkey=%%J
set DriverDesc=
for /f "usebackq tokens=3,4*" %%K in (`reg query "%hkey2%\%subkey%" /v DriverDesc ^| find /i  

"driverdesc"`) do set DriverDesc=%%K %%L 通道
reg query "%hkey2%\%subkey%" /v MasterDeviceType | find /i "0x0" > nul
if not %errorlevel%==1 goto _ChgMaster
goto _CheckSlave

:_ChgMaster
reg add "%hkey2%\%subkey%" /v UserMasterDeviceType /t REG_DWORD /d 3 /f >nul

:_CheckSlave
reg query "%hkey2%\%subkey%" /v SlaveDeviceType | find /i "0x0" > nul
if not %errorlevel%==1 goto _ChgSlave
goto :eof

:_ChgSlave
reg add "%hkey2%\%subkey%" /v UserSlaveDeviceType /t REG_DWORD /d 3 /f >nul
goto :eof

2010-9-18 11:33
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (676939481)  编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: