找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 18491|回复: 1

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

[复制链接]
发表于 2021-6-19 22:02:50 | 显示全部楼层 |阅读模式
请问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.                
  8.                 if exist %P_path% (
  9.                         goto _st_Copy ::如果存在路径:就跳转到_st_Copy直接拷贝
  10.                 ) else (
  11.                         color 4A
  12.                         @echo 请输入正确本地磁盘完整路径,并以[/]结尾,如:D:\DataBase\
  13.                         @rem 空出一行
  14.                         @echo.
  15.                         @echo ----------------------------------------------
复制代码
请问:如果用户乱填信息,比如:哈哈哈哈,我就只能在批处理文件所在的相对路径下创建目录了,可是我的批处理在光盘上,那就报错了,所以md "%P_path%" 之前,我想做一下判断,麻烦哪位大神给介绍一下怎么处理啊,谢谢啦!
发表于 2021-6-20 22:42:03 | 显示全部楼层
回复 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
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 17:22 , Processed in 0.029363 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表