[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

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

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

TOP

回复 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
)
)

TOP

本帖最后由 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
复制代码
1

评分人数

    • 极品小猫: 谢谢,原来还要对 " 进行转义的啊技术 + 1

TOP

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

评分人数

TOP

回复 4# apang


    谢谢,原来还要对 双引号 进行转义的啊

TOP

回复 5# amwfjhh


    请问对转义后的双引号加*通配的意义是?

TOP

回复 7# 极品小猫


    匹配零或多个,对引号进行转义,并加上通配符,可以兼容有引号和无引号的路径。

TOP

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

回复 8# amwfjhh

了解了

TOP

返回列表