标题: [文件操作] [已解决]可不可以强制跳转批处理(即使正在运行中)? [打印本页]
作者: comicguests 时间: 2011-7-10 20:35 标题: [已解决]可不可以强制跳转批处理(即使正在运行中)?
比如
@echo off
xxx (
这里是个循环
)
goto:1
xxx
:1
删除xxx
exit
就是类似上面的东西
中间的循环中有让用户输入某些字符才可以继续,比如文件夹名
但并不能跳出循环
问题是:
当需要我填入字符时,如果我填入特定字符,比如abcd,
他就可以跳出循环执行 :1
如cmd窗口内显示:
请输入文件夹名:abcd
正在删除xxx
作者: cjiabing 时间: 2011-7-10 21:58
start /b+临时文件
搜索”按任意键和倒计时退出“
作者: comicguests 时间: 2011-7-11 08:50
2# cjiabing
不明白....
请问,
具体要怎么做呢?
如果用以下代码:- SetLocal EnableDelayedExpansion
- For /R %%a In (*.mp4 *.rmvb *.mkv) Do (
- Set "Str=%%~nxa"
- SetLocal&Cls
- Echo 视频文件:%%~nxa&Echo,
- For /f "Delims=" %%b In ('Dir /ad /b F:\视频') Do (
- Set /A Num+=1,Number+=1&Set ".!Num!=F:\视频\%%b"
- Set "Str=000!Num!"&Set "Var=%%b "
- Set /P=[!Str:~-3!]!Var:~,20!<nul
- If "!Number!" EQU "2" Echo,&Set /A Number=0
- )
- Echo,&Set "Str="&Set /P Str=请选择文件夹:
- For %%b in (!Str!) do Echo !.%%b!>tem
- EndLocal
- Set /p Str=<tem&Del tem
- Echo,&Set "Var="&Set /P Var=A,直接建立文件夹 D,打开子文件夹:
- If /i "!Var!" EQU "D" (
- SetLocal&Cls
- Echo 视频文件:%%~nxa&Echo,
- For /F "Delims=" %%b In ('Dir /s /ad /b "!Str!"') Do (
- Set /A Num+=1,Number+=1&Set ".!Num!=%%b"
- Set "Str1=000!Num!"&Set "Var=%%b "
- Set /P=[!Str1:~-3!]!Var:~,20!<nul
- If "!Number!" EQU "2" Echo,&Set /A Number=0
- )
- Echo,&Set "Str="&Set /P Str=请选择文件夹:
- For %%b in (!Str!) do Echo !.%%b!>tem
- EndLocal
- Set /p Str=<tem&Del tem
- )
- SetLocal&Cls
- Echo 视频文件:%%~nxa&Echo,
- Set /P Name=所选文件夹是!Str!,请输入新文件夹名:
- If Not Exist "!Str!\!Name!" Md "!Str!\!Name!"
- Move "%%a" "!Str!\!Name!\"
复制代码
作者: comicguests 时间: 2011-7-11 08:52
to:zm900612
那个,应该不算代码....
作者: ArdentMan 时间: 2011-7-11 08:58
本帖最后由 ArdentMan 于 2011-7-11 10:27 编辑
你想在哪个For循环中中止程序就在这个For循环的Set /P 这一句中加入退出,
如将Echo,&Set "Str="&Set /P Str=请选择文件夹:这一句改为:- Echo,&Set "Str="&Set /P Str=请选择文件夹(输入Z退出程序):
- If /i "!Str!" EQU "Z" Exit
复制代码
作者: cjiabing 时间: 2011-7-11 09:04
看了半天,你是要求这样呢,简单:
- :Loop
- set a=
- set /p a=输入:
- cls
- lf /i %a%==abcd (goto ok) else (echo 输入有误)
-
- goto Loop
-
- :ok
- echo 恭喜你跳出来了
- Pause
复制代码
作者: comicguests 时间: 2011-7-11 10:26
感谢各位的回答!
作者: Hello123World 时间: 2011-7-11 13:35
本帖最后由 Hello123World 于 2011-7-11 13:47 编辑
- @echo off
- :Loop
- choice /c:ab /m "input a or b "
- cls
- if errorlevel 2 (goto no)
- if errorlevel 1 (goto ok)
-
- ::choice命令的好处是不用回车,选项也可以自定义,坏处是必须结合goto使用,这里a对应返回值1,b对应返回值2,如有多余2个的选择,依此类推。
- goto Loop
-
- :ok
- echo 恭喜你跳出来了
- Pause
- exit
- pause>nul
-
- :no
- echo 恭喜跳到no
- pause
复制代码
6楼的if是个Lf
作者: CrLf 时间: 2011-7-11 16:55
4# comicguests
我认为一般来说符合编程语法的就是代码
话说我也不想老扣你分,让别人感觉咱俩有仇似的,但是版规如此,木油办法啊,只好得罪了,见谅
作者: comicguests 时间: 2011-7-12 11:25
9# zm900612
原来如此,
了解!!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |