batch 在每行開頭新增資料 - Windows

By Regina
at 2016-09-14T21:37
at 2016-09-14T21:37
Table of Contents
※ 引述《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
--
: 小弟初學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
--
Tags:
Windows
All Comments

By Linda
at 2016-09-17T21:40
at 2016-09-17T21:40
Related Posts
Win8重灌Win10卡在開機畫面

By Eartha
at 2016-09-14T20:13
at 2016-09-14T20:13
win10不知系統管理員密碼

By Tristan Cohan
at 2016-09-14T18:06
at 2016-09-14T18:06
Windows Update 2016年9月份更新

By Edward Lewis
at 2016-09-14T16:23
at 2016-09-14T16:23
Win8 重灌成Win 10

By Damian
at 2016-09-14T15:49
at 2016-09-14T15:49
無法安裝adobe flash player

By Rebecca
at 2016-09-14T14:38
at 2016-09-14T14:38