Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Обработка строк с последующей сортировкой (http://forum.oszone.net/showthread.php?t=316977)

pageYK@fb 20-07-2016 13:31 2652479

Обработка строк с последующей сортировкой
 
В файле есть строки типа:
1|21424142|12|Иванов Иван Иванович
2|13214142|8|Петров Петр Ильич
...

Надо разделить число в 3 столбце пополам и отсортировать строки по нему(соответственно поменять 1число - т.к. это и есть нумерация строк)

Georgio 20-07-2016 20:04 2652642

Код:

@echo off
setlocal enabledelayedexpansion

set "src=list.txt"
set "dest=new_list.txt"

for /f "usebackq tokens=3 delims=|" %%i in ("%src%") do (
 set/a x=%%i/2
 if !x! gtr !max! set/a max=x
)
>"%dest%" (
 for /l %%i in (0 1 %max%) do @(
  for /f "usebackq tokens=2,3* delims=|" %%j in ("%src%") do @(
  set/a x=%%k/2
  if %%i equ !x! (
    set/a n+=1
    echo !n!^|%%j^|%%i^|%%l
  )
  )
 )
)

endlocal
exit/b


alpap 27-07-2016 23:44 2654668

Код:

@echo off
setlocal enabledelayedexpansion
set "f=file.txt"
<"%f%">>$ (for /f "tokens=2,3* delims=|" %%a in ('more') do @set/a x=%%b%%2& if !x!==0 set/a y=%%b/2& echo %%a^|!y!^|%%c)
<$>"%f%" (for /f "delims=" %%a in ('more^|sort/+10') do @set/a n+=1& echo !n!^|%%a)& del $
exit

.


Время: 05:38.

Время: 05:38.
© OSzone.net 2001-