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

已按要求修改,000~999,自动识别代码或字符

本帖最后由 mxxcgzxxx 于 2011-8-2 22:41 编辑

试试这个只用了两个大函数,一个原代码%mm%,一个转换代码%密钥%,
%n%为原代码长度,测试代码为千字文,1000个字,有个别重复,测试通过
注意代码中的空行和空格不要删!
  1. @ECHO OFF
  2. setlocal enabledelayedexpansion
  3. set MM=天地玄黄宇宙洪荒日月盈昃辰宿列张寒来暑往秋收冬藏闰馀成岁律吕调阳云腾致雨露结为霜金生丽水玉出昆冈剑号巨阙珠称夜光果珍李柰菜重芥姜海咸河淡鳞潜羽翔龙师火帝鸟官人皇始制文字乃服衣裳推位让国有虞陶唐吊民伐罪周发殷汤坐朝问道垂拱平章爱育黎首臣伏戎羌遐迩一体率宾归王鸣凤在竹白驹食场化被草木赖及万方盖此身发四大五常恭惟鞠养岂敢毁伤女慕贞洁男效才良知过必改得能莫忘罔谈彼短靡恃己长信使可复器欲难量墨悲丝染诗赞羔羊景行维贤克念作圣德建名立形端表正空谷传声虚堂习听祸因恶积福缘善庆尺璧非宝寸阴是竞资父事君曰严与敬孝当竭力忠则尽命临深履薄夙兴温凊似兰斯馨如松之盛川流不息渊澄取映容止若思言辞安定笃初诚美慎终宜令荣业所基籍甚无竟学优登仕摄职从政存以甘棠去而益咏乐殊贵贱礼别尊卑上和下睦夫唱妇随外受傅训入奉母仪诸姑伯叔犹子比儿孔怀兄弟同气连枝交友投分切磨箴规仁慈隐恻造次弗离节义廉退颠沛匪亏性静情逸心动神疲守真志满逐物意移坚持雅操好爵自縻都邑华夏东西二京背邙面洛浮渭据泾宫殿盘郁楼观飞惊图写禽兽画彩仙灵丙舍傍启甲帐对楹肆筵设席鼓瑟吹笙升阶纳陛弁转疑星右通广内左达承明既集坟典亦聚群英杜稿钟隶漆书壁经府罗将相路侠槐卿户封八县家给千兵高冠陪辇驱毂振缨世禄侈富车驾肥轻策功茂实勒碑刻铭磻溪伊尹佐时阿衡奄宅曲阜微旦孰营桓公匡合济弱扶倾绮回汉惠说感武丁俊乂密勿多士寔宁晋楚更霸赵魏困横假途灭虢践土会盟何遵约法韩弊烦刑起翦颇牧用军最精宣威沙漠驰誉丹青九州禹迹百郡秦并岳宗泰岱禅主云亭雁门紫塞鸡田赤城昆池碣石巨野洞庭旷远绵邈岩岫杳冥治本于农务资稼穑俶载南亩我艺黍稷税熟贡新劝赏黜陟孟轲敦素史鱼秉直庶几中庸劳谦谨敕聆音察理鉴貌辨色贻厥嘉猷勉其祗植省躬讥诫宠增抗极殆辱近耻林皋幸即两疏见机解组谁逼索居闲处沉默寂寥求古寻论散虑逍遥欣奏累遣戚谢欢招渠荷的历园莽抽条枇杷晚翠梧桐蚤凋陈根委翳落叶飘摇游鹍独运凌摩绛霄耽读玩市寓目囊箱易輶攸畏属耳垣墙具膳餐饭适口充肠饱饫烹宰饥厌糟糠亲戚故旧老少异粮妾御绩纺侍巾帷房纨扇圆絜银烛炜煌昼眠夕寐蓝笋象床弦歌酒宴接杯举觞矫手顿足悦豫且康嫡后嗣续祭祀烝尝稽颡再拜悚惧恐惶笺牒简要顾答审详骸垢想浴执热愿凉驴骡犊特骇跃超骧诛斩贼盗捕获叛亡布射僚丸嵇琴阮啸恬笔伦纸钧巧任钓释纷利俗竝皆佳妙毛施淑姿工颦妍笑年矢每催曦晖朗曜璇玑悬斡晦魄环照指薪修祜永绥吉劭矩步引领俯仰廊庙束带矜庄徘徊瞻眺孤陋寡闻愚蒙等诮谓语助者焉哉乎也
  4. set n=999
  5. set "menu1=对应代码为:"
  6. set "menu2=对应字符为:"
  7. set en=^
  8. for /l %%a in (0,1,%n%) do (
  9.             set /a a=1000+%%a   
  10.             set "密钥=!密钥!!en! !a:~-3! !mm:~%%a,1! "
  11.             )
  12. :1
  13. echo.!en!!en!!en!
  14. set /p p=输入需查找的文字或代码:
  15. echo %p%| findstr "^[0-9]*$" >nul && (set "a=2" & set/a p+=1000 & set su=!p:~-3!) || set "a=1" &&set su=%p%
  16. for /f "tokens=%a%" %%a in ('set 密钥 ^|findstr /c:" %su% " ^|^| echo 无此代码;无此字符') do echo.!en!![%su%]!menu%a%![%%a]!en!
  17. pause>nul
  18. goto :1
复制代码
1

评分人数

世界上没有学不会的知识,也没有想得到却做不到的事!

TOP

本帖最后由 mxxcgzxxx 于 2011-7-31 22:49 编辑

8楼按你的要求更新了,但要提醒你,000是最大限度了。到0000就受不了了
[换行]+[空格]+000+[空格]+字符+[空格]=8个字符
8*1000=8000 已经接近最大限度了再多一位就到9000了就只能容下908个代码了,得不偿失
当然也可以不用空格分格可以再多两位数,程序就要再多几句fidnstr来识别就是了,但怎么样也都到不了1200,所以也没太大意义
世界上没有学不会的知识,也没有想得到却做不到的事!

TOP

返回列表