楼 主
替换字符串递增变量
发表于 2008-06-02 17:12 · 中国 上海 奉贤区 电信
中级用户
★★
积分 392
发帖 142
注册 2007-06-10 09:48
UID 90856
性别 男
状态 离线
文件里内容如下
ccc 1aa bbb
ccc 1aa bbb
ccc 1aa bbb
ccc 1aa bbb
ccc 1aa bbb
我如何替换变量1aa得到结果为
ccc 1aa bbb
ccc 2aa bbb
ccc 3aa bbb
ccc 4aa bbb
ccc 5aa bbb
谢谢
第 2 楼
发表于 2008-06-20 03:16 · 中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
UID 59080
状态 离线
@echo off & SetLocal EnableDelayedExpansion
set /a n=1
for /f "tokens=1,2,*" %%a in (urfile.ext) do (
echo.%%a !n!aa %%c>>newfile
set /a n+=1
)
start notepad newfile
[
Last edited by lxmxn on 2008-6-23 at 10:31 PM ]
第 3 楼
发表于 2008-06-21 16:55 · 中国 广东 汕头 电信
初级用户
★
积分 53
发帖 20
注册 2007-06-08 18:31
UID 90697
性别 男
状态 离线
lxmxn兄的代码是不是写欠了,改了一下
@echo off & SetLocal EnableDelayedExpansion
for /f "tokens=1,2,*" %%a in (1.txt) do (
set /a n=!n!+1
echo %%a !n!aa %%c>>2.txt
)
start notepad 2.txt
冷静是危难中最好的救生圈!
第 4 楼
发表于 2008-06-23 22:32 · 中国 湖北 武汉 联通
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
UID 59080
状态 离线
Originally posted by komafd2 at 2008-6-21 16:55:
lxmxn兄的代码是不是写欠了,改了一下
@echo off & SetLocal EnableDelayedExpansion
for /f "tokens=1,2,*" %%a in (1.txt) do (
set /a n=!n!+1
echo %%a !n!aa %%c>& ...
嗯,的确写掉了一个语句,已经改正过来了,多谢提醒…… ^_^
第 5 楼
发表于 2008-06-25 22:00 · 中国 山西 电信
银牌会员
★★★
天的白色影子
积分 2,343
发帖 636
注册 2004-03-06 00:00
UID 19350
性别 男
状态 离线
虽然在DOS论坛
但也不一定局限在DOS的方法
类似的问题
我一定会用excel
而非批处理
因为同类问题我通常只会遇到一次
我不会辛苦为此专门编一段代码的
当然dos下也是有第三方的命令行工具可以直接实现楼主的目的
比如最经典的sed
第 6 楼
发表于 2008-06-28 21:25 · 中国 陕西 移动(全省通用)
银牌会员
★★★★
钻石会员
积分 2,278
发帖 1,020
注册 2007-11-19 13:34
UID 103127
性别 男
状态 离线
若用批处理,sed就不必了,内部命令足矣。
很想学习sed,但感觉还是前学后忘,
山外有山,人外有人;低调做人,努力做事。
进入网盘(各种工具)~~
空间~~
cmd学习
第 7 楼
发表于 2008-06-29 03:42 · 中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
UID 59080
状态 离线
Originally posted by plp626 at 2008-6-28 21:25:
若用批处理,sed就不必了,内部命令足矣。
很想学习sed,但感觉还是前学后忘,
多练习,时间长了自然就会了,我感觉学习sed最关键的是理解 pattern space 和 hold buffer 的作用和关系。另外,regex 也应该要熟练。
[
Last edited by lxmxn on 2008-6-29 at 03:43 AM ]
第 8 楼
谁知道%%与!!运算符的区别
发表于 2009-11-18 17:29 · 中国 安徽 六安 舒城县 电信
新手上路
★
积分 4
发帖 3
注册 2007-01-08 02:00
UID 75773
性别 男
状态 离线
问大家一个问题
@echo off & SetLocal EnableDelayedExpansion
for /f "tokens=1,2,*" %%a in (1.txt) do (
set /a n=!n!+1
echo %%a %n%aa %%c>>2.txt
这个地方原来的!n!我改成了%n%为什么就出错呢?
)
start notepad 2.txt
我真的不知道是什么原因,%n%不是引用变量n吗?
!n!这个也是引用变量n吗?
请高手解答
论坛跳转: