标题: [文本处理] 请问BAT批处理脚本有没有判断用户输入路径是否合法的解决方案啊? [打印本页]
作者: ChinaTB 时间: 2021-6-19 22:02 标题: 请问BAT批处理脚本有没有判断用户输入路径是否合法的解决方案啊?
请问BAT批处理脚本有没有判断用户输入路径是否合法的解决方案啊?
比如:- set Default_path=D:\DataBase\
- set P_path=
- set /p P_path=请输入需要部署的路径,后按回车键继续:默认(%Default_path%)
- @rem @echo. 路径信息-1:[!P_path!]
- if "%P_path%"=="" (set P_path=%Default_path%)
- @rem @echo. 路径信息-2:[!P_path!]
-
- if exist %P_path% (
- goto _st_Copy ::如果存在路径:就跳转到_st_Copy直接拷贝
- ) else (
- color 4A
- @echo 请输入正确本地磁盘完整路径,并以[/]结尾,如:D:\DataBase\
- @rem 空出一行
- @echo.
- @echo ----------------------------------------------
复制代码
请问:如果用户乱填信息,比如:哈哈哈哈,我就只能在批处理文件所在的相对路径下创建目录了,可是我的批处理在光盘上,那就报错了,所以md "%P_path%" 之前,我想做一下判断,麻烦哪位大神给介绍一下怎么处理啊,谢谢啦!
作者: Batcher 时间: 2021-6-20 22:42
回复 1# ChinaTB
可以考虑换个思路:判断md命令是否成功,而不是判断用户的输入。- @echo off
- set "Default_path=D:\DataBase\"
-
- :input
- set "P_path="
- set /p "P_path=请输入需要部署的路径,后按回车键继续:默认(%Default_path%)"
- if "%P_path%"=="" (
- set "P_path=%Default_path%"
- )
-
- if exist "%P_path%" (
- goto :_st_Copy
- ) else (
- md "%P_path%"
- if errorlevel 1 (
- echo 请输入正确本地磁盘完整路径,并以[\]结尾,如:D:\DataBase\
- echo,
- goto :input
- ) else (
- goto :_st_Copy
- )
- )
-
- :_st_Copy
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |