批处理之家's Archiver

albenlee 发表于 2020-2-17 15:18

一个通用的路径验证正则表达式

[i=s] 本帖最后由 albenlee 于 2020-2-17 15:22 编辑 [/i]

给定一个字符串,用正则表达式验证,验证是否为合法路径,正则表达式要有通用性[code]@echo off
:: 给定一个字符串
set p="d:\s s\asd8"
::使用findstr,验证路径的合法性,正则表达式怎么写?
::感觉正表达式有很多功能在批处理都不能使用
echo %p%|findstr /r /i [a-z]:\\??? || echo no
pause
[/code]

Batcher 发表于 2020-2-17 16:35

[b]回复 [url=http://bbs.bathome.net/redirect.php?goto=findpost&pid=226609&ptid=54868]1#[/url] [i]albenlee[/i] [/b]


findstr支持的正则非常有限
[url]http://bbs.bathome.net/thread-24-1-1.html[/url]

可以考虑换成PowerShell试试

CrLf 发表于 2020-2-17 23:28

[i=s] 本帖最后由 CrLf 于 2020-2-17 23:31 编辑 [/i]

不一定要用正则嘛。。。抛砖引玉:[code]set "p=d:\s s\asd8"
robocopy /l . "%p:"=%" >nul 2>&1
if errorlevel 16 echo 路径有误[/code]当然这个robocopy是从win7才开始自带的,不过适用同样原理的工具应该还有很多

codegay 发表于 2020-2-18 01:09

[b]回复 [url=http://bbs.bathome.net/redirect.php?goto=findpost&pid=226616&ptid=54868]3#[/url] [i]CrLf[/i] [/b]


    :lol 同理,robocopy 还可以当成一个查看当前日期和时间的工具

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.