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

[文本处理] [已解决]批处理是否可以定义在FOR语句中变量的类型?

本帖最后由 playinthesky 于 2011-7-2 22:28 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. for /r %%a  in (*.txt) do (
  3.      echo %%a
  4. )
  5. for /r %%b  in (*.txt) do (
  6.      echo %%b
  7. )
复制代码
比方说变量a,是否可以定义成仅为0-9之内的数值,变量b为A-Z之间的字母,是否可以把变量定义一个范围?求教,谢谢大家。
是限定出现的范围,只能显示0-9和A-Z的文字,
比方说有篇文章,内容是
我1234567爱zzzzssssddddd你
那显示出来就只能是
1234567zzzzssssddddd
自动忽略其他字符


或者
#@¥%¥……%&你为什么1234爱爱2222爱啊aa啊_++++

最后输出的时候 就只显示 12342222aa
1

评分人数

    • batman: 感谢给帖子标题标注[已解决]字样PB + 2

  1. sed "s/[^0-9a-zA-Z]//g" a.txt
复制代码

TOP

  1. Dim FSO, vbStr
  2. Set FSO = CreateObject("Scripting.FileSystemObject")
  3. vbStr = FSO.OpenTextFile("a.txt").ReadAll()
  4. Set FSO = Nothing
  5. MsgBox RegText(vbStr)
  6. Function RegText(RgStr)
  7.   Dim REGEX
  8.   Set REGEX = New RegExp
  9.   REGEX.Global = True
  10.   REGEX.IgnoreCase = True
  11.   REGEX.Pattern = "[^1-9A-Z\s]*([1-9A-Z\s]*)[^1-9A-Z\s]*"
  12.   RegText = REGEX.Replace(RgStr, "$1")
  13.   Set REGEX = Nothing
  14. End Function
复制代码
1

评分人数

    • batman: 虽然回答有点离题PB + 2 技术 + 1
一路飘过的鸟~~~

TOP

记得听别人说过,批处理中的变量是“弱类型”变量

TOP

是限定出现的范围,只能显示0-9和A-Z的文字,
比方说有篇文章,内容是
我1234567爱zzzzssssddddd你
那显示出来就只能是
1234567zzzzssssddddd
自动忽略其他字符

TOP

没看懂楼主的意思
如果是想要在for中只显示九次可以用set/a a+=1&if not !a! leq 9 echo %%a
如果是想要只显示以字母a-z开头的文件名可以用echo %%b|findstr "^[a-z].*$"

TOP

  1. for /l %%a in (1,1,10) do echo %%a
复制代码
这样可以不?
如果不行就用
  1. random
复制代码
随机参数获取

TOP

楼主想达到什么目的呢?
一路飘过的鸟~~~

TOP

返回列表