Board logo

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

作者: hzlawh    时间: 2017-3-21 23:06     标题: 批处理如何实现每次运行对文本中的特定数字自动加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

我是新手,弄了半天不会, 麻烦大神宝贵的时间了。
作者: hzlawh    时间: 2017-3-21 23:07

@echo off


set /p p=<mac.txt
echo %p%

set /a p=p+1
set "pp=%p%"
echo %pp% >mac.txt
if %p% lss 10   set "pp=0%p%"


这个好像不对。
作者: codegay    时间: 2017-3-22 01:55

MAC地址应该是十6进制
作者: hzlawh    时间: 2017-3-22 13:56

我只是要10进制就行。麻烦你了
作者: hzlawh    时间: 2017-3-22 13:57

16进制的代码有了
作者: ShowCode    时间: 2017-3-22 14:14

回复 5# hzlawh


    请把16进制的代码发出来,可以帮你改成10进制的。
作者: hzlawh    时间: 2017-3-22 14:23

刚才上面发的是10进制的,但是进位有点错误。 在哪个基础上修改一下就很快。
作者: hzlawh    时间: 2017-3-22 14:25

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

回复 7# hzlawh


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

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

set /a p=p+1 凭啥加1就能得到你想要的数字2?
作者: hzlawh    时间: 2017-3-22 15:01

说错了 初始值是单个数字。
作者: hzlawh    时间: 2017-3-22 15:05

本帖最后由 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 大侠提供。
供您参考。
作者: hzlawh    时间: 2017-3-22 15:07

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

SN 也按照初始值来进位。每次进1位。要求10进制, 这里有2个初始文本文件,分别是sn.txt 和mac.txt 都赋值了一个初始值。
作者: hzlawh    时间: 2017-3-22 15:11

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

比如初始是11:22:33:AA:00:01  运行一次后得到 11:22:33:AA:00:09
作者: hzlawh    时间: 2017-3-22 17:55

没有声音了
作者: ShowCode    时间: 2017-3-22 18:09

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

作者: zuodx    时间: 2017-3-25 13:47

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
作者: zuodx    时间: 2017-3-25 13:51

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




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2