![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-10 21:39 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 批处理 if 嵌套问题 |
| 可打印版本 1,149 / 1 |
| 第1楼 msjsp | 发表于 2008-12-04 15:13 |
| 新手上路 发帖 2 积分 2 | |
|
批处理 if 嵌套问题 我写了一个编译并运行JAVA的批处理程序(JAVA环境变量已注册),我想实现的效果是:
格式: 批处理 JAVA源文件名 然后开始编译,若失败,用记事本打开让用户修改,若编译成功,则询问用户该程序是否带参数运行(以A/B表示),然后跳入指定段运行,最后退出。 但是为什么在实际运行的时候 CMD提示说 此时不应有goto ? 应该怎么样写才能实现上述效果呢?请高手指点~~ 批处理内容如下: @echo off cls color 0a title JAVA编译实用工具-汉化版 echo **********JAVA编译实用工具************ echo. echo wscript.sleep 2 >%windir%\delay.vbs echo -^>正在编译....%1.java javac .\%1.java if errorlevel 1 ( echo -^>编译失败! echo. echo -^>请按任意键修改错误的JAVA源程序! pause >nul notepad .\%1.java goto end ) if errorlevel 0 ( echo. echo -^>编译成功! echo. set /p="本程序是否带参数运行(A/B)? " <nul set /p pon= if %pon%==A goto Para if %pon%==B goto Nopara echo -^>正在运行... :Para echo. echo -^>创建测试文件...Record.dat echo >.\Record.dat echo -^>成功! echo. echo *************输出视图************** %windir%\delay.vbs echo. echo ======参数缺少异常====== echo -^>输入参数为 Record.dat %windir%\delay.vbs echo. java %1 Record.dat %windir%\delay.vbs echo. goto end :Nopara echo *************输出视图************** %windir%\delay.vbs echo. echo ======参数缺少异常====== echo -^>输入参数为空 %windir%\delay.vbs echo. java %1 if errorlevel 1 ( echo 发生了异常! goto final ) %windir%\delay.vbs echo. goto end ) del %windir%\delay.vbs /f /q :final echo CopyRight(c)2008 echo 409 Media Corporation set /p=" 成功完成所有任务,是否进行扫尾处理(Y/N)?" <nul set /p ans= if %ans%==Y goto Yes if %ans%==N goto No if %ans%==A goto Para :Yes del .\Record.dat /f /q ::del .\%1.java /f /q del .\%1.class /f /q echo -^>扫尾工作完成,按任意键退出... goto end :No echo 按任意键退出... goto end :end pause >nul |
|
| 第2楼 pooronce | 发表于 2008-12-04 16:09 |
| 中级用户 发帖 250 积分 484 | |
|
在比较的时候,变量有可能是是空值,那么实际比较时就成了这样:
if ==end goto xxx 这个时候就会提示“此时不应有”了,微软最垃圾的cmd设置,不管什么错误都是此时不应有 比较字串附加个字母或者用引号引起来吧 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |