Board logo

标题: [文本处理] 【已解决】批处理命令findstr字符集中如何能包含空格? [打印本页]

作者: 极品小猫    时间: 2014-11-24 15:34     标题: 【已解决】批处理命令findstr字符集中如何能包含空格?

本帖最后由 极品小猫 于 2014-11-25 07:53 编辑
  1. findstr /c:"^[0-9a-zA-Z\:\\\-_\.]*$"
复制代码
这条命令如果在字符集包括空格就会出错,在字符集内使用空格似乎无法被当作常规字符?不使用Sed命令如何解决这个问题?
作者: CrLf    时间: 2014-11-24 16:08

/c 后的参数变成普通字符串了,顶楼正则不生效的吧,再加个 /r
  1. findstr /rc:"^[0-9a-zA-Z\:\\\-_\. ]*$"
复制代码

作者: 极品小猫    时间: 2014-11-24 18:20

回复 2# CrLf


    有试过加 /r 但是结果一样
以下是完整代码

:InstallAPK
set InstallAPK="E:\Games\Android\APK\Orientation Control2.apk"
if defined InstallAPK (
echo %InstallAPK%|findstr /rc:"^[0-9a-zA-Z\:\\\-_\. ]*$" && (
                echo %InstallAPK%
        ) || (
        echo 不能存在非字母和数字的字符,按任意键返回
        pause>nul
        goto :InstallAPK
)
)
作者: apang    时间: 2014-11-24 20:25

本帖最后由 apang 于 2014-11-24 20:36 编辑

回复 3# 极品小猫


    echo %InstallAPK% 只是显示文件路径
findstr /rc:"^[0-9a-zA-Z\:\\\-_\. ]*$" %InstallAPK% 才是搜索文件内容

-----------------------------------------------------------------------

貌似弄错了,这样试试:
  1. @echo off
  2. :InstallAPK
  3. set InstallAPK="E:\Games\Android\APK\Orientation Control2.apk"
  4. if defined InstallAPK (
  5.     echo %InstallAPK%|findstr /rc:"^\"[0-9a-zA-Z\:\\\-_\. ]*\"$">nul&& (
  6.                 echo %InstallAPK%
  7.     ) || (
  8.                 echo 不能存在非字母和数字的字符,按任意键返回
  9.                 pause>nul
  10.                 goto :InstallAPK
  11.          )
  12. )
  13. pause
复制代码

作者: amwfjhh    时间: 2014-11-24 22:34

  1. echo %InstallAPK%|findstr /rc:"^\"*[0-9a-zA-Z\:\\\-_\. ]*\"*$">nul&&()||()
复制代码

作者: 极品小猫    时间: 2014-11-25 07:52

回复 4# apang


    谢谢,原来还要对 双引号 进行转义的啊
作者: 极品小猫    时间: 2014-11-25 07:53

回复 5# amwfjhh


    请问对转义后的双引号加*通配的意义是?
作者: amwfjhh    时间: 2014-11-25 09:28

回复 7# 极品小猫


    匹配零或多个,对引号进行转义,并加上通配符,可以兼容有引号和无引号的路径。
作者: 极品小猫    时间: 2014-11-25 09:47

本帖最后由 极品小猫 于 2014-11-25 09:48 编辑

回复 8# amwfjhh

了解了




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