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

[文本处理] 批处理如何实现每次运行对文本中的特定数字自动加1/加一/自增一/自增1

本帖最后由 pcl_test 于 2017-3-22 00:10 编辑

求救大神,如何做个批处理可以每次运行对给定的数字自动加1? 10进位的。

原版的文本就一行,比如11:22:AB:44:55:00

我需要运行1次批处理后,改文本变为11:22:AB:44:55:01

2次后变为11:22:AB:44:55:02




9次后变为11:22:AB:44:55:09
10次后变为11:22:AB:44:55:10
11次后变为11:22:AB:44:55:11

我是新手,弄了半天不会, 麻烦大神宝贵的时间了。

D:\tmp>perl -ne " chomp ; m/^(.+)(.{2}$)/ ; print $1  ; printf(\"%02X\n\" , hex($2)+1)";
11:22:33:44:55:66
11:22:33:44:55:67
11:aa:bb:cc:dd:aa
11:aa:bb:cc:dd:AB

TOP

D:\tmp>perl -ne " chomp ; m/^(.+)(.{2}$)/ ; print $1  ; printf(\"%02X\n\" , hex($2)+1)";
11:22:33:44:55:66
11:22:33:44:55:67
11:aa:bb:cc:dd:aa
11:aa:bb:cc:dd:AB

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for /f "tokens=1-6 delims=:" %%a in ('type "mac.txt"') do (
  4.     set /a n=1%%f+1
  5.     echo %%a:%%b:%%c:%%d:%%e:!n:~-2!
  6. ))>"mac.txt.new"
  7. move /y "mac.txt.new" "mac.txt" > nul
复制代码

TOP

没有声音了

TOP

另外 如果MAC 我要每次加8 或者加10 的话(就是10进制,但是每运行一次加数值8或者13 怎么处理?)

比如初始是11:22:33:AA:00:01  运行一次后得到 11:22:33:AA:00:09

TOP

本帖最后由 hzlawh 于 2017-3-22 15:09 编辑

SN 也按照初始值来进位。每次进1位。要求10进制, 这里有2个初始文本文件,分别是sn.txt 和mac.txt 都赋值了一个初始值。

TOP

本帖最后由 pcl_test 于 2017-3-22 20:43 编辑

http://www.bathome.net/redirect. ... 1876&ptid=42070

这个SN会自动16 进制进位。 我想改为10进制。  这里的MAC是根据SN换算来的。 我想改为按照我提供的初始值来的,每次进位1个数字,10进位。 供参考。 以上代码为aa77dd@163.com 大侠提供。
供您参考。
1

评分人数

    • pcl_test: 引用代码直接发相应链接,勿重复贴码PB -4

TOP

说错了 初始值是单个数字。

TOP

回复 7# hzlawh


一点也不快啊,那个代码根本就是错误的。

set /p p=<mac.txt
p这个变量取到的值是一个字符串11:22:33:AA:00:01

set /a p=p+1 凭啥加1就能得到你想要的数字2?

TOP

mac.txt里面 需要放置一个初始值。然后每次运行会自动加1的。 比如:11:22:33:AA:00:01
初始值。 运行第一次就变为11:22:33:AA:00:02了  运行第2次 mac.txt .就变为11:22:33:AA:00:03了。
您试试。

TOP

刚才上面发的是10进制的,但是进位有点错误。 在哪个基础上修改一下就很快。

TOP

回复 5# hzlawh


    请把16进制的代码发出来,可以帮你改成10进制的。

TOP

16进制的代码有了

TOP

我只是要10进制就行。麻烦你了

TOP

返回列表