中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-04 21:47
48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » 批量处理代码不知道那错了
可打印版本  950 / 6
第1楼 cheng54550 发表于 2007-06-09 22:02
初级用户 发帖 26 积分 67
批量处理代码不知道那错了
@echo off
:1
color 04E
cls
echo ★==★==★==★==★==★==★==★==★==★==★
echo 欢迎使用
echo
echo ★==★==★==★==★==★==★==★==★==★==★
echo.
echo 今天是%date%, 现在是北京时间:%time%
echo.
echo ===========================================
echo 请选择要进行的操作,然后按回车
echo ===========================================
echo.
echo 1.清除系统垃圾文件
echo.
echo 2.不显示系统隐藏文件
echo.
echo 3.退出
echo.
echo 4.
echo.
echo 5.
echo.

:cho
set choice=
set /p choice= 请选择:
IF NOT "%Choice%"=="" SET Choice=%Choice:~0,1%
if /i "%choice%"=="1" goto 1
if /i "%choice%"=="2" goto 2
if /i "%choice%"=="3" goto 3
if /i "%choice%"=="4" goto 4
if /i "%choice%"=="5" goto 5
if /i "%choice%"=="6" goto 6
if /i "%choice%"=="7" goto 7
if /i "%choice%"=="8" goto 8
if /i "%choice%"=="9" goto 9
if /i "%choice%"=="10" goto 10
echo 选择无效,请重新输入
echo.
pause>nul
goto 1

:1
@echo off
cls
color 04E
echo -------------------------------------------------
echo 欢迎使用垃圾清理工具 奶瓶专用版

echo 奶瓶制作
echo -------------------------------------------------

@echo off
echo 正在清除系统垃圾文件,请稍等......
del /f /s /q %systemdrive%\*.tmp
del /f /s /q %systemdrive%\*._mp
del /f /s /q %systemdrive%\*.log
del /f /s /q %systemdrive%\*.gid
del /f /s /q %systemdrive%\*.chk
del /f /s /q %systemdrive%\*.old
del /f /s /q %systemdrive%\recycled\*.*
del /f /s /q %windir%\*.bak
del /f /s /q %windir%\prefetch\*.*
rd /s /q %windir%\temp & md %windir%\temp
del /f /q %userprofile%\cookies\*.*
del /f /q %userprofile%\recent\*.*
del /f /s /q "%userprofile%\Local Settings\Temporary Internet Files\*.*"
del /f /s /q "%userprofile%\Local Settings\Temp\*.*"
del /f /s /q "%userprofile%\recent\*.*"
echo 清除系统LJ完成!垃圾已吃饱欢迎下次使用!
echo ---------------------------------------------------
echo 欢迎使用垃圾清理工具 清除系统LJ完成!

echo 奶瓶制作
echo ---------------------------------------------------
echo 请按回车键
pause>nul
goto 1

:2
@echo off
cls
echo 不显示隐藏文件...
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v Hidden /t reg_dword /d 00000000 /f
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v HideFileExt /t reg_dword /d 00000001 /f
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v ShowSuperHidden /t reg_dword /d 00000000 /f
echo.
echo 不显示隐藏文件成功,按任意键返回!
pause >nul
goto top

:3
exit

-------------------------------
我故意输错选择,比如5或9什么的,开始提示选择无效,请重新输入,在按确定有运行第1个了,清除系统垃圾文件。
第2楼 wudixin96 发表于 2007-06-09 23:18
银牌会员 发帖 931 积分 1,928
这里的标签只有1、2、3,哪来5、6、7、8、9????
第3楼 cheng54550 发表于 2007-06-09 23:21
初级用户 发帖 26 积分 67
echo 1.清除系统垃圾文件
echo.
echo 2.不显示系统隐藏文件
echo.
echo 3.退出
echo.
echo 4.
echo.
echo 5.

就算在这里加上也一 样啊
第4楼 lianjiang2004 发表于 2007-06-10 07:10
金牌会员 发帖 1,884 积分 3,946
找一个现成的看看。
第5楼 wudixin96 发表于 2007-06-10 08:17
银牌会员 发帖 931 积分 1,928
:cho
set choice=
set /p choice= 请选择:
IF NOT "%Choice%"=="" SET Choice=%Choice:~0,1%
if /i "%choice%"=="1" goto 1
if /i "%choice%"=="2" goto 2
if /i "%choice%"=="3" goto 3
if /i "%choice%"=="4" goto 4
if /i "%choice%"=="5" goto 5
if /i "%choice%"=="6" goto 6
if /i "%choice%"=="7" goto 7
if /i "%choice%"=="8" goto 8
if /i "%choice%"=="9" goto 9
if /i "%choice%"=="10" goto 10
echo 选择无效,请重新输入
echo.
pause>nul
goto 1

问题一、SET Choice=%Choice:~0,1%
所以if /i "%choice%"=="10" goto 10这里choice取不到10。只取到1。

问题二、



这里表示即使输入错误,也跳到1的标签处。
干嘛不改成
第6楼 cheng54550 发表于 2007-06-10 11:44
初级用户 发帖 26 积分 67
@echo off
:cho
color 04E
cls
echo ★==★==★==★==★==★==★==★==★==★==★
echo 欢迎使用
echo
echo ★==★==★==★==★==★==★==★==★==★==★
echo.
echo 今天是%date%
echo.
echo 现在是北京时间%TIME%
echo.
echo ===========================================
echo 请选择要进行的操作,然后按回车
echo ===========================================
echo.
echo 1.清除系统垃圾文件
echo.
echo 2.不显示系统隐藏文件
echo.
echo 3.退出
echo.
echo 4.
echo.
echo 5.
echo.
echo 6.
echo.
echo 7.
echo.

:cho
set choice=
set /p choice= 请选择:
IF NOT "%Choice%"=="10" SET Choice=%Choice:~0,10%
if /i "%choice%"=="1" goto 1
if /i "%choice%"=="2" goto 2
if /i "%choice%"=="3" goto 3
if /i "%choice%"=="4" goto 4
if /i "%choice%"=="5" goto 5
if /i "%choice%"=="6" goto 6
if /i "%choice%"=="7" goto 7
if /i "%choice%"=="8" goto 8
if /i "%choice%"=="9" goto 9
echo 选择无效,请重新输入
echo.
pause>nul
goto cho

:1
@echo off
cls
color 04E
@echo off
echo 正在清除系统垃圾文件,请稍等......
del /f /s /q %systemdrive%\*.tmp
del /f /s /q %systemdrive%\*._mp
del /f /s /q %systemdrive%\*.log
del /f /s /q %systemdrive%\*.gid
del /f /s /q %systemdrive%\*.chk
del /f /s /q %systemdrive%\*.old
del /f /s /q %systemdrive%\recycled\*.*
del /f /s /q %windir%\*.bak
del /f /s /q %windir%\prefetch\*.*
rd /s /q %windir%\temp & md %windir%\temp
del /f /q %userprofile%\cookies\*.*
del /f /q %userprofile%\recent\*.*
del /f /s /q "%userprofile%\Local Settings\Temporary Internet Files\*.*"
del /f /s /q "%userprofile%\Local Settings\Temp\*.*"
del /f /s /q "%userprofile%\recent\*.*"
echo ---------------------------------------------------
echo 清除系统LJ完成!垃圾已吃饱欢迎下次使用!
echo ---------------------------------------------------
echo 请按回车键
pause>nul
goto cho

:2
@echo off
cls
echo 不显示隐藏文件...
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v Hidden /t reg_dword /d 00000000 /f
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v HideFileExt /t reg_dword /d 00000001 /f
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v ShowSuperHidden /t reg_dword /d 00000000 /f
echo.
echo 不显示隐藏文件成功,按任意键返回!
pause >nul
goto cho

:3
exit

----------------------------------
echo 选择无效,请重新输入
echo.
pause>nul
goto cho
--------------------------------------
我要故意输入错误的话这句话更本就没用了,比如我输入10,直接就消失了。
5555我笨,不好意思。
第7楼 wudixin96 发表于 2007-06-10 13:59
银牌会员 发帖 931 积分 1,928
IF NOT "%Choice%"=="10" SET Choice=%Choice:~0,10%
这句有必要吗?

而且发现有cho标签两个。如果goto cho的话,应该跳往何处??
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023