[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 请问BAT批处理脚本有没有判断用户输入路径是否合法的解决方案啊?

请问BAT批处理脚本有没有判断用户输入路径是否合法的解决方案啊?
比如:
  1. set Default_path=D:\DataBase\
  2. set P_path=
  3. set /p P_path=请输入需要部署的路径,后按回车键继续:默认(%Default_path%)
  4. @rem @echo. 路径信息-1:[!P_path!]
  5. if "%P_path%"=="" (set P_path=%Default_path%)
  6. @rem @echo. 路径信息-2:[!P_path!]
  7. if exist %P_path% (
  8. goto _st_Copy ::如果存在路径:就跳转到_st_Copy直接拷贝
  9. ) else (
  10. color 4A
  11. @echo 请输入正确本地磁盘完整路径,并以[/]结尾,如:D:\DataBase\
  12. @rem 空出一行
  13. @echo.
  14. @echo ----------------------------------------------
复制代码
请问:如果用户乱填信息,比如:哈哈哈哈,我就只能在批处理文件所在的相对路径下创建目录了,可是我的批处理在光盘上,那就报错了,所以md "%P_path%" 之前,我想做一下判断,麻烦哪位大神给介绍一下怎么处理啊,谢谢啦!

回复 1# ChinaTB


可以考虑换个思路:判断md命令是否成功,而不是判断用户的输入。
  1. @echo off
  2. set "Default_path=D:\DataBase\"
  3. :input
  4. set "P_path="
  5. set /p "P_path=请输入需要部署的路径,后按回车键继续:默认(%Default_path%)"
  6. if "%P_path%"=="" (
  7.     set "P_path=%Default_path%"
  8. )
  9. if exist "%P_path%" (
  10. goto :_st_Copy
  11. ) else (
  12.     md "%P_path%"
  13.     if errorlevel 1 (
  14.         echo 请输入正确本地磁盘完整路径,并以[\]结尾,如:D:\DataBase\
  15.         echo,
  16.         goto :input
  17.     ) else (
  18.         goto :_st_Copy
  19.     )
  20. )
  21. :_st_Copy
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表