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

[文本处理] 【已解决】搜寻未出现数据的批处理代码 为什么出错

[复制链接]
发表于 2015-11-18 18:41:50 | 显示全部楼层 |阅读模式
本帖最后由 思想之翼 于 2015-11-19 20:14 编辑
  1. @echo off
  2. pushd "D:\数据1"
  3. for /l %%a in (10000 1 19999) do set $%%a=1
  4. for %%a in (*.txt) do (
  5.   set "str= "
  6.   setlocal enabledelayedexpansion
  7.   for /f "delims=" %%b in (%%~snxa) do (
  8.      for %%c in (%%b) do set "$1%%c="
  9.   )
  10.   for /l %%b in (10000 1 19999) do if defined $%%b set "str=!str! %%b"
  11.   set "str=!str: 1= !"
  12.   echo;!str:~2!
  13.   endlocal
  14. )>"d:\未现数\数据1\%%~nxa"
  15. exit
复制代码
上述代码欲在0000-9999中,找出没有出现过的数据。但是未出现的数据找不全。代码错在哪里?恳望得到帮助。

评分

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

查看全部评分

发表于 2015-11-18 20:00:37 | 显示全部楼层
  1. set "str= "
  2. setlocal enabledelayedexpansion
  3. for /l %%b in (10000 1 19999) do set "str=!str! %%b"
复制代码
上面的代码经测试有效运行到了 11363

1364*6+5=8189

再继续就要超出变量存储上限了
发表于 2015-11-18 20:21:25 | 显示全部楼层
转投其它编程语言肯定没有错。
发表于 2015-11-19 16:42:21 | 显示全部楼层
本帖最后由 WHY 于 2015-11-19 16:45 编辑
  1. @if (0)==(0) echo off
  2. md "D:\未出现\数据1" 2>nul
  3. pushd D:\数据1\
  4. dir /b *.txt | cscript //nologo //e:jscript "%~f0"
  5. pause & exit
  6. @end

  7. var fso = new ActiveXObject('Scripting.FileSystemObject');
  8. while (!WSH.StdIn.AtEndOfStream){
  9.     var strFile = WSH.StdIn.ReadLine();
  10.     var objFile = fso.OpentextFile(strFile, 1);
  11.     var s = objFile.ReadAll();
  12.     objFile.Close(); objFile = null;
  13.     var arr = [];
  14.     for (var i=10000; i<20000; i++){
  15.         var re = new RegExp('\\b' + (i+'').substr(1) + '\\b', '');
  16.         if (!re.test(s)){arr.push((i+'').substr(1))};
  17.     }
  18.     fso.OpenTextFile('D:\\未出现\\数据1\\' + strFile, 2, true).Write(arr.join(' '))
  19. }
复制代码

评分

参与人数 1技术 +1 收起 理由
思想之翼 + 1 感谢。解决问题。速度快。

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 08:23 , Processed in 0.019684 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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