标题: [文本处理] 【已解决】搜寻未出现数据的批处理代码 为什么出错 [打印本页]
作者: 思想之翼 时间: 2015-11-18 18:41 标题: 【已解决】搜寻未出现数据的批处理代码 为什么出错
本帖最后由 思想之翼 于 2015-11-19 20:14 编辑
- @echo off
- pushd "D:\数据1\"
- for /l %%a in (10000 1 19999) do set $%%a=1
- for %%a in (*.txt) do (
- set "str= "
- setlocal enabledelayedexpansion
- for /f "delims=" %%b in (%%~snxa) do (
- for %%c in (%%b) do set "$1%%c="
- )
- for /l %%b in (10000 1 19999) do if defined $%%b set "str=!str! %%b"
- set "str=!str: 1= !"
- echo;!str:~2!
- endlocal
- )>"d:\未现数\数据1\%%~nxa"
- exit
复制代码
上述代码欲在0000-9999中,找出没有出现过的数据。但是未出现的数据找不全。代码错在哪里?恳望得到帮助。
作者: aa77dd@163.com 时间: 2015-11-18 20:00
- set "str= "
- setlocal enabledelayedexpansion
- for /l %%b in (10000 1 19999) do set "str=!str! %%b"
复制代码
上面的代码经测试有效运行到了 11363
1364*6+5=8189
再继续就要超出变量存储上限了
作者: 依山居 时间: 2015-11-18 20:21
转投其它编程语言肯定没有错。
作者: WHY 时间: 2015-11-19 16:42
本帖最后由 WHY 于 2015-11-19 16:45 编辑
- @if (0)==(0) echo off
- md "D:\未出现\数据1" 2>nul
- pushd D:\数据1\
- dir /b *.txt | cscript //nologo //e:jscript "%~f0"
- pause & exit
- @end
-
- var fso = new ActiveXObject('Scripting.FileSystemObject');
- while (!WSH.StdIn.AtEndOfStream){
- var strFile = WSH.StdIn.ReadLine();
- var objFile = fso.OpentextFile(strFile, 1);
- var s = objFile.ReadAll();
- objFile.Close(); objFile = null;
- var arr = [];
- for (var i=10000; i<20000; i++){
- var re = new RegExp('\\b' + (i+'').substr(1) + '\\b', '');
- if (!re.test(s)){arr.push((i+'').substr(1))};
- }
- fso.OpenTextFile('D:\\未出现\\数据1\\' + strFile, 2, true).Write(arr.join(' '))
- }
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |