Board logo

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

作者: ChinaTB    时间: 2021-6-19 22:02     标题: 请问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%" 之前,我想做一下判断,麻烦哪位大神给介绍一下怎么处理啊,谢谢啦!
作者: Batcher    时间: 2021-6-20 22:42

回复 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
复制代码





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