中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 批处理不能删除自身,请高手帮我看下是什么原因,谢谢!
作者:
标题: 批处理不能删除自身,请高手帮我看下是什么原因,谢谢! 上一主题 | 下一主题
wuminglove001
新手上路





积分 1
发帖 4
注册 2006-11-6
状态 离线
『楼 主』:  批处理不能删除自身,请高手帮我看下是什么原因,谢谢!

rem 程序说明
@echo off
cls
Title [窗口标题]


reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /va /f
reg delete HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run /va /f
reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run /v ctfmon.exe /d C:\WINDOWS\system32\ctfmon.exe
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupreg" /f

reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupreg\IMJPMIG8.1"
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupreg\IMJPMIG8.1" /v command /d ""C:\WINDOWS\IME\imjp8_1\IMJPMIG.EXE" /Spoil /RemAdvDef /Migration32"
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupreg\IMJPMIG8.1" /v hkey /d HKLM
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupreg\IMJPMIG8.1" /v inimapping /d 0
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupreg\IMJPMIG8.1" /v item /d IMJPMIG
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupreg\IMJPMIG8.1" /v key /d SOFTWARE\Microsoft\Windows\CurrentVersion\Run

reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupreg\PHIME2002A"
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupreg\PHIME2002A" /v command /d "C:\WINDOWS\system32\IME\TINTLGNT\TINTSETP.EXE /IMEName"
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupreg\PHIME2002A" /v hkey /d HKLM
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupreg\PHIME2002A" /v inimapping /d 0
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupreg\PHIME2002A" /v item /d TINTSETP
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupreg\PHIME2002A" /v key /d SOFTWARE\Microsoft\Windows\CurrentVersion\Run

reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupreg\PHIME2002ASync"
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupreg\PHIME2002ASync" /v command /d ""C:\WINDOWS\IME\imjp8_1\IMJPMIG.EXE" /Spoil /RemAdvDef /Migration32"
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupreg\PHIME2002ASync" /v hkey /d HKLM
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupreg\PHIME2002ASync" /v inimapping /d 0
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupreg\PHIME2002ASync" /v item /d TINTSETP
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupreg\PHIME2002ASync" /v key /d SOFTWARE\Microsoft\Windows\CurrentVersion\Run

del "C:\Documents and Settings\All Users\「开始」菜单\程序\启动\*.*" /q /f
del "C:\Documents and Settings\Default User\「开始」菜单\程序\启动\*.*" /q /f
del "%userprofile%\「开始」菜单\程序\启动\*.*" /q /f

@ echo.
@ echo.
@ echo.

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

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

del %0


我想让批处理运行完后删除自身,但是运行完后好像并不能删除自身,不知是何原因,请知道的高手朋友们指点下,谢谢!

2010-5-12 21:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Hanyeguxing
银牌会员

正在学习中的菜鸟...


积分 1039
发帖 897
注册 2009-3-1
来自 在地狱中仰望天堂
状态 离线
『第 2 楼』:  



  Quote:
echo IED通道检测设备模式设置完成。
@ echo.

goto :eof

里的goto :eof改成del %0



批处理之家 http://bbs.bathome.net/forum-5-1.html
2010-5-12 21:20
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wuminglove001
新手上路





积分 1
发帖 4
注册 2006-11-6
状态 离线
『第 3 楼』:  

谢谢,不过刚试了下,貌似不行.

2010-5-12 21:26
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lovelymorning
初级用户





积分 131
发帖 72
注册 2008-2-24
状态 离线
『第 4 楼』:  

按1楼那样改也不行?

有没提示什么。。。还是批直接退出了?

建议在每个 标签节点  那里,加暂停。。。。看看会不会是命令有错,让cmd给直接退出了。。

[ Last edited by lovelymorning on 2010-5-16 at 01:39 ]

2010-5-16 01:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
flyghost
新手上路





积分 12
发帖 11
注册 2008-10-13
状态 离线
『第 5 楼』:  

最后一行的del %0
改成
:eof
del %0
试试
我没测试过,不知道有没有效,你的这段不敢运行,我好多程序想自动运行的

[ Last edited by flyghost on 2010-5-16 at 10:58 ]

2010-5-16 10:56
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: