标题: [文本处理] 求助:批处理如何在每行前面插入/添加递增的数字序号? [打印本页]
作者: 452452 时间: 2011-11-11 09:27 标题: 求助:批处理如何在每行前面插入/添加递增的数字序号?
本帖最后由 pcl_test 于 2017-6-5 09:41 编辑
求助:批处理如何在每行前面追加序列数字?
盾构机姿态的人工测量原理
基于GPS的时钟同步模型选择与实验分析
半参数模型估计的补偿最小二乘法与正则核方法
上下文敏感的空间信息服务智能推送研究
巴丹吉林沙漠高大沙山区沙层含水量与水分来源探讨
NiCrAlYSi涂层DD6单晶高温合金界面再结晶和互扩散行为研究
CRT显示器的颜色转换模型
ISAR非平稳目标成像时间和转速联合估计方法
盾构刀盘参数化自动建模与优化设计
一种动态角色模型及其实现机制
平稳函数线性内插的教学探讨
基于TGO软件的GPS网同步环及异步环提取
把a文件夹内所有的文本,在每行前面追加序列数字并空两格:
0001 盾构机姿态的人工测量原理
0002 基于GPS的时钟同步模型选择与实验分析
0003 半参数模型估计的补偿最小二乘法与正则核方法
0004 上下文敏感的空间信息服务智能推送研究
0005 巴丹吉林沙漠高大沙山区沙层含水量与水分来源探讨
0006 NiCrAlYSi涂层DD6单晶高温合金界面再结晶和互扩散行为研究
0007 CRT显示器的颜色转换模型
0008 ISAR非平稳目标成像时间和转速联合估计方法
0009 盾构刀盘参数化自动建模与优化设计
0010 一种动态角色模型及其实现机制
0011 平稳函数线性内插的教学探讨
作者: sxw 时间: 2011-11-11 09:50
for /f 试试
作者: lxh623 时间: 2011-11-11 09:50
excel里面应该可以。插入(空行),填充——序列。之后,再在文本编辑器行首添加00,替换制表符为两个空格,删除(替换)多出来的引号。
作者: awk 时间: 2011-11-11 09:56
- @echo off
- setlocal enabledelayedexpansion
- set n=10000
- for %%a in ("C:\test\a\*.*") do (
- set /a n+=1
- ren "%%a" "!n:~-4! %%~nxa"
- )
复制代码
作者: 452452 时间: 2011-11-11 10:00
回复 2# sxw
如何用 for /f 试试?
作者: 601997526 时间: 2011-11-11 10:17
本帖最后由 601997526 于 2011-11-11 11:36 编辑
- @echo off
- setlocal enabledelayedexpansion
- set n=10000
- (for /f "delims=" %%a in (a.txt) do (
- set /a n+=1
- echo.!n:~-4! %%a
- ))>b.txt
复制代码
之前这个是复制4楼的,少写了一对括号,已修正
作者: 452452 时间: 2011-11-11 10:34
本帖最后由 452452 于 2011-11-11 10:37 编辑
回复 4# awk
不是在文件名前面追加序列数字,而是在每个文本文件里面的每行前面追加序列数字。
作者: 452452 时间: 2011-11-11 10:54
回复 6# 601997526
代码的输出结果只有最后一行
0012 基于TGO软件的GPS网同步环及异步环提取
作者: sxw 时间: 2011-11-11 11:17
6楼的不就可以吗?
作者: lvsehuaxue 时间: 2011-11-11 11:21
- @echo off&setlocal enabledelayedexpansion
- for %%i in (x:\a\*.txt) do (
- set n=100001
- (for /f "delims=" %%a in (%%i) do (
- echo !n:~1! %%a
- set /a n+=1
- ))>$
- move $ %%i
- )
- pause
复制代码
作者: 452452 时间: 2011-11-11 11:36
10楼的没有输出结果
作者: Hello123World 时间: 2011-11-11 12:35
本帖最后由 Hello123World 于 2011-11-11 12:40 编辑
- @echo off
- setlocal EnableDelayedExpansion
- (For /f "delims=: tokens=1*" %%i in ('findstr /n ".*" a.txt') do (
- Set n=%%i
- If !n! lss 10 Set n=000!n!
- If !n! gtr 9 If !n! lss 100 Set n=00!n!
- If !n! gtr 99 If !n! lss 1000 Set n=0!n!
- echo.!n! %%j
- )
- )>aa.txt
- start aa.txt
- pause
复制代码
4,6楼的算法好,我这个太罗嗦了。
作者: cjiabing 时间: 2011-11-11 12:45
如果不限定位数,可以这样:
findstr /n
作者: jellyhk 时间: 2011-11-11 12:45
能不能就改原文件!不生成新文件?
作者: 545810831 时间: 2011-11-11 13:51
- @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%i in ('dir /b a\*.txt') do (
- set n=10000
- for /f "usebackq delims=" %%a in ("%%~dpia\%%~nxi") do (
- set /a n+=1
- echo !n:~-4! %%a>>new%%~nxi
- )
- )
- pause
复制代码
作者: szjwxn 时间: 2011-11-11 23:53
本帖最后由 szjwxn 于 2011-11-11 23:56 编辑
看了大家的代码感觉有点麻烦,不知道下面这段代码可以不?
1.txt是你的文件内容,可以把它创建到2.txt里面。- @echo off
- color 1a
- setlocal enabledelayedexpansion
- for /f %%i in (1.txt) do (
- set /a var+=1
- echo 000!var! %%i >>2.txt
- )
- pause
复制代码
作者: awk 时间: 2011-11-12 00:54
回复 16# szjwxn
从第十个开始全都错了
作者: lcg823 时间: 2011-11-13 18:42
本帖最后由 lcg823 于 2011-11-13 18:46 编辑
呵呵,有用,我正想去除每行前面追加序列数字呢!!
有没有去除每行前面追加序列数字的啊?
作者: bluewing009 时间: 2011-11-13 19:03
我的思路:用findstr先列出行号,在用for修改
作者: CrLf 时间: 2011-11-13 19:19
计算行数时建议用 set /a n+=10001,省事、快捷
作者: bluewing009 时间: 2011-11-13 20:35
回复 20# CrLf
哦~这样也行…………
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |