标题: [文本处理] 批处理如何实现每次运行对文本中的特定数字自动加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
- @echo off
- setlocal enabledelayedexpansion
- (for /f "tokens=1-6 delims=:" %%a in ('type "mac.txt"') do (
- set /a n=1%%f+1
- echo %%a:%%b:%%c:%%d:%%e:!n:~-2!
- ))>"mac.txt.new"
- 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 |