Board logo

标题: [其他] [算是解决了吧]延时处理如何根据是否输入来判断 [打印本页]

作者: yunyan100    时间: 2017-11-6 23:44     标题: [算是解决了吧]延时处理如何根据是否输入来判断

本帖最后由 yunyan100 于 2017-11-7 01:19 编辑

RT,一个爱好者,现在想这样一个功能
  1. ping 127.1 -n 10 >nul
  2. set /p pa=输入y确认删除完成原文件(其他任意返回主菜单)
  3. :a
  4. :b
  5. :c
复制代码
这两段要实现的功能就是,一定要在延时的同时,也有下面的输入值功能(目前是延时后才显示下面),当10少内没有输入值,即%pa%为空值的时候,延时10秒后就自动走向a,否则根据%pa%的值走abc,
各位大神,这功能有办法实现吗?谢谢各位大神
作者: zaqmlp    时间: 2017-11-7 00:00

choice /?,xp略过
作者: yunyan100    时间: 2017-11-7 00:01

回复 2# zaqmlp
高手能补全下吗?
我用这样的也不行
  1. choice /t 10 /d y /n >nul
复制代码

作者: zaqmlp    时间: 2017-11-7 00:03

回复 3# yunyan100

加上判断呀
作者: yunyan100    时间: 2017-11-7 00:07

回复 4# zaqmlp


    不是的,我是想用set /p那个输入值与延时同步的,行不行?如果实在得不到这样的,我也考虑用这个吧
作者: yunyan100    时间: 2017-11-7 01:18

回复 4# zaqmlp


    哎,穷人一个,哪有money向你要啊,本来是想用问题两个来合作的,看来确实达不到,我也选choice吧,自己已经做好如下:
  1. :delyy
  2. ::删除制作完成后的原文件
  3. cls&echo.&echo                           %batname%-%2
  4. echo.&echo.                                     %1
  5. echo.&echo.                       要删除按"y",不删除按"n"或8秒后自动返回主菜单
  6. echo.&choice /c yn /t 8 /d n
  7. if errorlevel 2 call :soft
  8. if errorlevel 1 goto :delold
  9. :delold
  10. set /p yn=请输入"y"确认删除,否则直返回主菜单:
  11. if /i "%yn%" equ "y" ( rd /s/q "%paa%"&call :soft)else ( call :soft)
复制代码

作者: /zhqsystem/zhq    时间: 2017-11-8 18:33

:main
set pa=
set/p pa=
if not defined pa call:ping&&goto:a
for /f "usebackq delims=" %%i in ("%~f0")do (
if /i "%%i"==":%pa%" goto:%pa%
)
echo,无此跳转标签
goto:main
:a
echo,a
pause
:b
echo,b
pause
:c
echo,c
pause
:ping
ping /n 10 127.1 >nul 2>nul
goto:eof
作者: yunyan100    时间: 2017-11-12 10:08

回复 7# /zhqsystem/zhq


    谢谢了,没有达到我的想法,还是choice的基本达到我的要求,我发下我更新的给你看下,且是删除到回收站,所以已经完美了
  1. :delyy
  2. ::删除制作完成后的原文件
  3. cls&echo.&echo                           %batname%-%2
  4. echo.&echo.                                    %1
  5. echo.&echo.                       要删除按"y",不删除按"n"(8秒后自动删除)
  6. echo.&choice /c yn /t 8 /d y
  7. if errorlevel 2 call :soft
  8. if errorlevel 1 echo;"%paa%"|mshta "javascript:new ActiveXObject('Shell.Application').NameSpace(10).MoveHere(new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(0).readline().split('"')[1]);close()"
  9. call :soft
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2