请高手帮我修改一下这个批处理

这是我学写的一个批处理,构思是让这个批处理在试用次数10次用完后,自动销毁。但始终没有成功,请高手帮我修改一下,谢谢。@echooff::批处理试用次数过后,本程序将自动... 这是我学写的一个批处理,构思是让这个批处理在试用次数10次用完后,自动销毁。但始终没有成功,请高手帮我修改一下,谢谢。
@echo off

::批处理试用次数过后,本程序将自动销毁。
if exist c:\0000 goto 判断
echo 10>c:\0000
goto menu

:判断
cls
for /f "delims=" %%a in (c:\0000) do (set mm=%%a)
if "%mm%"=="0" goto 销毁

set /p times="%mm%-1"
del /q c:\0000
echo %times%>c:\0000
goto menu
if "%times%"=="0" goto 销毁

:销毁
del /q /f %0
exit

:menu
cls
::\\\\\\\\\\\\\\\ 批 处 理 内 容 \\\\\\\\\\\\\\\::
echo.
echo ╔━━━━━━━━━━━━╗
echo ┃ 这里是批处理的正文 ┃
echo ╚━━━━━━━━━━━━╝
pause
exit
::\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\::

思路是,让批处理运行时自动判断有无c:\0000文件,无则新建一个,有则进行判断“0000”文件里的数值,为0时,程序直接销毁;不为0时,将数值-1,重新写入“0000”中,待运行时下次读取。
----------------------------------------

非常感谢一楼第一个做出回答,虽然用不了
三楼纯粹灌水该打屁屁
四楼的回答很具体、专业,但我水平有限,不知道怎么向里面添加我需要的销毁操作命令,也非常感谢你。
二楼的回答直接应用,谢谢啦!
展开
 我来答
专业的电脑医生
2009-03-18 · 超过11用户采纳过TA的回答
知道答主
回答量:89
采纳率:0%
帮助的人:0
展开全部
@echo off

::批处理试用次数过后,本程序将自动销毁。
if exist c:\0000 goto 判断
echo 10 >c:\0000
goto menu

:判断
cls
for /f %%i in (c:\0000) do set n=%%i
if "%n%"=="0 " goto 销毁

set /a n-=1
del /q c:\0000
echo %n% >c:\0000
goto menu

:销毁
del /q /f %0

:menu
cls
::\\\\\\\\\\\\\\\ 批 处 理 内 容 \\\\\\\\\\\\\\\::
echo.
echo ╔━━━━━━━━━━━━╗
echo ┃ 这里是批处理的正文 ┃
echo ╚━━━━━━━━━━━━╝
pause
exit
::\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\::
liuzhaonan11
2009-03-14 · TA获得超过3711个赞
知道大有可为答主
回答量:2250
采纳率:0%
帮助的人:0
展开全部
问题在于
%times%>
有特殊含义
这样改:

@echo off

::批处理试用次数过后,本程序将自动销毁。
if exist c:\0000 goto 判断
(echo 10)>c:\0000
goto menu

:判断
cls
for /f "delims=" %%a in (c:\0000) do (set mm=%%a)
if "%mm%"=="0" goto 销毁

set /p times="%mm%-1"
del /q c:\0000
(echo %times%)>c:\0000
goto menu
if "%times%"=="0" goto 销毁

:销毁
del /q /f %0
exit

:menu
cls
::\\\\\\\\\\\\\\\ 批 处 理 内 容 \\\\\\\\\\\\\\\::
echo.
echo ╔━━━━━━━━━━━━╗
echo ┃ 这里是批处理的正文 ┃
echo ╚━━━━━━━━━━━━╝
pause
exit
::\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\::
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
忆林子
2009-03-18 · TA获得超过2034个赞
知道大有可为答主
回答量:4079
采纳率:0%
帮助的人:2747万
展开全部

你失败的原因不是你的逻辑有问题,而你你在()中用变量的时候

要用setlocal这个命令

以下是我已经调试通过的代码,你可以看看效果

图片是我用文本编辑器写出来的效果,因为在百度里好像它会把空格删除,那样代码看起来的结构不够好。所以就把图片给你看看结构。

@echo off 

rem 设置用来保存计数的临时文件

set countFile=c:\a.txt

rem 设置执行次数

set runTimes=3

if not exist "%countFile%" (

 echo %runTimes% >"%countFile%"

 goto :正常代码

) else (

 SETLOCAL ENABLEDELAYEDEXPANSION

 for /f "tokens=*" %%a in (

  'more "%countFile%"'

 ) do (

  set tmpValue=%%a

  set /a tmpValue=!tmpValue!+0

  if /i "!tmpValue!"=="1" (

   echo 对不起,你的试用次数已经结束。

   del "%countFile%" /q 1>nul 2>nul

  ) else (

   set /a tmpValue=!tmpValue!-1

   echo !tmpValue! test

   echo !tmpValue! > "!countFile!"

   goto :正常代码

  )

 )

 ENDLOCAL

)

PAUSE

EXIT

:正常代码

CLS

echo ============================

echo 这里是正常执行代码。

echo ============================

pause

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
476339081
2009-03-18 · TA获得超过322个赞
知道答主
回答量:184
采纳率:100%
帮助的人:76.4万
展开全部
uticdufutfouyfgvyufyuyu各家各户空降兵几架客机考虑考虑koiibilyluulhbiulgiulgiuh; 合格率六个iigoliugoiughlb连脚裤六个iuliugliu
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式