Re: [问题] batch 在每行开头新增资料

楼主: pendoth (46825)   2016-09-14 21:37:29
※ 引述《wopicoun (挖屁康)》之铭言:
: 小弟初学batch file
: 想问下如果有我一个txt档如下
: 123 apple
: 456465 orange
: 88 banana
: .
: .
: .
: 第一栏是数字,第二栏是字串,
: 1.我想要将每一行通过第一栏排序大小
: 2.之后在开头新增一个新的字段,放其他字串例如 Aa 123 apple 这样
: 大致拆成两步,请问如何只用bat完成呢?
: 感谢
code如下:
@echo off
Setlocal EnableDelayedExpansion
for /f "tokens=1,2*" %%i in (source1.txt) do (
set /a var=1000000000+%%i
echo !var! %%j>>temp1.txt
)
for /f "tokens=1,2*" %%i in ('sort temp1.txt') do (
set /a var=%%i-1000000000
echo !var! %%j>>temp2.txt
set /a count=!count!+1
call :add !count!
)
:add
for /f "skip=%1" %%a in (source2.txt) do (
echo %%a !var! %%j>>result.txt
goto :eof
)
pause
exit
source1.txt和source2.txt
前者是你要排序的Txt档后者是你要新增的Txt档
执行产生temp1.txt & temp2.txt & result.txt三个Txt档
temp2.txt可以不用输出
result.txt是你要的结果
概念大约就是source1.txt第一栏加上1000000000
就可以用sort指令去排序
排序后再淢回1000000000输出成temp2.txt
之后再用一个for循环和skip选项依序抓source2.txt每行的值
插在每行的前面输出成result.txt
因为skip的值不能为0
所以source2.txt的第一行需保留为空
两边source资料行数不一样的话
多的就不会输出了
我写的话大概就是这样
期待有高手用更简单的概念写出你的需求
附上测试档
https://goo.gl/LEpwzr
作者: wopicoun (挖屁康)   2016-09-14 22:44:00
感谢!!加上一个大数补齐位数我也正好有在stack overflow看到 不过skip的用法我是第一次学到

Links booklink

Contact Us: admin [ a t ] ucptt.com