找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 26012|回复: 7

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

[复制链接]
发表于 2011-7-2 18:28:25 | 显示全部楼层 |阅读模式
本帖最后由 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

评分

参与人数 1PB +2 收起 理由
batman + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2011-7-2 18:39:10 | 显示全部楼层
楼主想达到什么目的呢?
发表于 2011-7-2 19:29:29 | 显示全部楼层
  1. for /l %%a in (1,1,10) do echo %%a
复制代码
这样可以不?
如果不行就用
  1. random
复制代码
随机参数获取
发表于 2011-7-2 19:44:23 | 显示全部楼层
没看懂楼主的意思
如果是想要在for中只显示九次可以用set/a a+=1&if not !a! leq 9 echo %%a
如果是想要只显示以字母a-z开头的文件名可以用echo %%b|findstr "^[a-z].*$"
 楼主| 发表于 2011-7-2 20:54:49 | 显示全部楼层
是限定出现的范围,只能显示0-9和A-Z的文字,
比方说有篇文章,内容是
我1234567爱zzzzssssddddd你
那显示出来就只能是
1234567zzzzssssddddd
自动忽略其他字符
发表于 2011-7-2 20:54:51 | 显示全部楼层
记得听别人说过,批处理中的变量是“弱类型”变量
发表于 2011-7-2 21:36:47 | 显示全部楼层

  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
复制代码

评分

参与人数 1PB +2 技术 +1 收起 理由
batman + 2 + 1 虽然回答有点离题

查看全部评分

发表于 2011-7-3 11:55:33 | 显示全部楼层
  1. sed "s/[^0-9a-zA-Z]//g" a.txt
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 02:44 , Processed in 0.020793 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表