|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Помогите удалить повторяющиеся строки в файле. |
|
CMD/BAT - [решено] Помогите удалить повторяющиеся строки в файле.
|
Новый участник Сообщения: 5 |
Дело в том, что мне помогли с батником на форуме, я из одного файла копировал в другой только дату и ники играков, получается файл на выходе такой:
2013.03.14 ROGRS[SIBRK] 2013.03.14 6BeS9 2013.03.14 vtarasow1140 2013.03.14 SLONikVorkuta 2013.03.14 is_7_KPy4E_BCEX[AVD] 2013.03.14 lavr181[PPLOB] 2013.03.14 Mangyst1977 2013.03.14 ter175 2013.03.14 Dman7[STR_B] 2013.03.14 sasprosys 2013.03.14 Tarcus92 2013.03.14 210581 2013.03.14 kasl_one23 2013.03.14 MiDimMi 2013.03.14 PROHODASASHA[TTK72] 2013.03.14 Tantal06 2013.03.14 worldtanki 2013.03.14 KENWOODyara 2013.03.14 ashepckov 2013.03.14 Oksi88 2013.03.14 aleksis666 2013.03.14 eeeeeeeeeeeeeeeeeeeeere 2013.03.14 T_A_A 2013.03.14 Marson16 2013.03.14 vitek1974 2013.03.14 4empion_mira 2013.03.14 sergejpapa[PK_TP] 2013.03.14 karasius72 2013.03.14 Anclavv 2013.03.14 UMRITEWSENAX[KB-42] 2013.03.14 ROGRS[SIBRK] 2013.03.14 6BeS9 2013.03.14 vtarasow1140 2013.03.14 SLONikVorkuta 2013.03.14 is_7_KPy4E_BCEX[AVD] 2013.03.14 Dman7[STR_B] 2013.03.14 Mangyst1977 2013.03.14 ter175 2013.03.14 lavr181[PPLOB] 2013.03.14 sasprosys 2013.03.14 Tarcus92 2013.03.14 kasl_one23 2013.03.14 210581 2013.03.14 MiDimMi 2013.03.14 PROHODASASHA[TTK72] 2013.03.14 Tantal06 2013.03.14 worldtanki 2013.03.14 KENWOODyara 2013.03.14 Oksi88 2013.03.14 ashepckov 2013.03.14 aleksis666 2013.03.14 eeeeeeeeeeeeeeeeeeeeere 2013.03.14 T_A_A 2013.03.14 Marson16 2013.03.14 vitek1974 2013.03.14 4empion_mira 2013.03.14 sergejpapa[PK_TP] 2013.03.14 karasius72 2013.03.14 Anclavv 2013.03.14 UMRITEWSENAX[KB-42] 2013.03.14 ROGRS[SIBRK] 2013.03.14 6BeS9 2013.03.14 vtarasow1140 2013.03.14 SLONikVorkuta 2013.03.14 is_7_KPy4E_BCEX[AVD] 2013.03.14 Dman7[STR_B] 2013.03.14 Mangyst1977 2013.03.14 ter175 2013.03.14 lavr181[PPLOB] 2013.03.14 sasprosys 2013.03.14 Tarcus92 2013.03.14 kasl_one23 2013.03.14 210581 2013.03.14 MiDimMi 2013.03.14 PROHODASASHA[TTK72] 2013.03.14 Tantal06 2013.03.14 worldtanki 2013.03.14 KENWOODyara 2013.03.14 Oksi88 2013.03.14 ashepckov 2013.03.14 aleksis666 2013.03.14 eeeeeeeeeeeeeeeeeeeeere 2013.03.14 T_A_A 2013.03.14 Marson16 2013.03.14 vitek1974 2013.03.14 4empion_mira 2013.03.14 sergejpapa[PK_TP] 2013.03.14 karasius72 2013.03.14 Anclavv 2013.03.14 UMRITEWSENAX[KB-42] Тоесть в начальном файле получается повтор ников аж 3 раза, поэтому в исходном также.Хотелось бы чтобы в файле небыло повторов: 2013.03.14 ROGRS[SIBRK] 2013.03.14 6BeS9 2013.03.14 vtarasow1140 2013.03.14 SLONikVorkuta 2013.03.14 is_7_KPy4E_BCEX[AVD] 2013.03.14 lavr181[PPLOB] 2013.03.14 Mangyst1977 2013.03.14 ter175 2013.03.14 Dman7[STR_B] 2013.03.14 sasprosys 2013.03.14 Tarcus92 2013.03.14 210581 2013.03.14 kasl_one23 2013.03.14 MiDimMi 2013.03.14 PROHODASASHA[TTK72] 2013.03.14 Tantal06 2013.03.14 worldtanki 2013.03.14 KENWOODyara 2013.03.14 ashepckov 2013.03.14 Oksi88 2013.03.14 aleksis666 2013.03.14 eeeeeeeeeeeeeeeeeeeeere 2013.03.14 T_A_A 2013.03.14 Marson16 2013.03.14 vitek1974 2013.03.14 4empion_mira 2013.03.14 sergejpapa[PK_TP] 2013.03.14 karasius72 2013.03.14 Anclavv 2013.03.14 UMRITEWSENAX[KB-42] Помогите плиз ещё!А? |
|
Отправлено: 13:00, 14-03-2013 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать Исходные файлы из старой темы.
@Echo Off SetLocal EnableDelayedExpansion Set File1=Text.Log Set File2=Log.txt FOR /F "usebackq tokens=*" %%a in ("%File1%") do ( Set ta=%%a If Not !ta!==!ta:{"n":=! FOR /F "tokens=1,8 delims=:, " %%i in ("%%a") do If Not Defined $$$%%~j Set $$$%%~j=1& @echo %%i %%~j )>>"%File2%" Cd >nul 2>"%File1%" |
Отправлено: 13:24, 14-03-2013 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 5
|
Профиль | Отправить PM | Цитировать Цитата gora:
![]() |
|
Отправлено: 14:52, 14-03-2013 | #3 |
Ветеран Сообщения: 2196
|
Профиль | Отправить PM | Цитировать Необходимо убрать строки в Inst_Update.txt, в которых повторяется первый токен, оставив только строку с наибольшим вторым токеном.
Office 2010 есть Цитата:
Цитата:
@ECHO OFF setlocal enabledelayedexpansion SET UNISTALL=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products FOR /f "tokens=10 delims=\" %%a IN ('reg query "%UNISTALL%" ^|FIND /I "00004109"') DO ( FOR /f "tokens=12 delims=\" %%b IN ('reg query "%UNISTALL%\%%a\Patches"') DO ( FOR /f "tokens=1-3" %%l IN ('reg query "%UNISTALL%\%%a\Patches\%%b" 2^>nul ^| FIND /I "Installed"') do set dat=%%n FOR /f "tokens=1-3" %%c IN ('reg query "%UNISTALL%\%%a\Patches\%%b" 2^>nul ^| FIND /I "MoreInfoURL"') do ( FOR /f "tokens=4 delims=/" %%g IN ("%%e") DO ( >>Inst_Update.txt ECHO KB%%g--!dat! )))) exit |
||
Последний раз редактировалось sov44, 25-07-2013 в 19:45. Отправлено: 11:48, 25-07-2013 | #4 |
Пользователь Сообщения: 148
|
Профиль | Сайт | Отправить PM | Цитировать @echo off Setlocal EnableDelayedExpansion EnableExtensions set src=Inst_Update.txt set KBCount=0 for /F "UseBackQ tokens=1,2 delims=-" %%K in ("%src%") do ( if "%%L" neq "" ( if defined KBID.%%K ( if !KBID.%%K! LSS %%L set KBID.%%K=%%L ) else ( set /A KBCount+=1 set KBn.!KBCount!=%%K set KBID.%%K=%%L ) ) ) ( for /L %%C in (1,1,%KBCount%) do call echo !KBn.%%C!--%%KBID.!KBn.%%C!%% ) > "Inst_Update2.txt" pause |
|
------- Отправлено: 20:11, 25-07-2013 | #5 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать Немного упростил вариант коллеги Diskretor
|
Отправлено: 07:42, 26-07-2013 | #6 |
Ветеран Сообщения: 2196
|
Профиль | Отправить PM | Цитировать Как подправить скрипт поста 6, чтобы в выходном файле по нарастающей сначала шли восьмизначные КВ (KB982726), затем девятизначные КВ (KB2553092) ?
п.с. Возможно есть вариант сортировки выходного файла? решил, но ищется более изящное решение ![]() |
Последний раз редактировалось sov44, 06-08-2013 в 18:05. Отправлено: 21:50, 05-08-2013 | #7 |
Пользователь Сообщения: 148
|
Профиль | Сайт | Отправить PM | Цитировать Проверкой наличия 9-го символа.
@echo off Setlocal EnableDelayedExpansion set src=Inst_Update.txt for /F "UseBackQ tokens=1,2 delims=-" %%K in ("%src%") do if !KBID.%%K! LSS %%L set KBID.%%K=%%L (For /F "tokens=2,3 delims==." %%i In ('Set KBID.') Do set _KB=%%i& if "!_KB:~8,1!"=="" Echo %%i--%%j)> "Inst_Update3.txt" (For /F "tokens=2,3 delims==." %%i In ('Set KBID.') Do set _KB=%%i& if "!_KB:~8,1!" neq "" Echo %%i--%%j)>> "Inst_Update3.txt" |
------- Отправлено: 01:07, 14-08-2013 | #8 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать Цитата sov44:
|
|
Отправлено: 08:17, 14-08-2013 | #9 |
Новый участник Сообщения: 2
|
Профиль | Отправить PM | Цитировать @echo off
SetLocal EnableDelayedExpansion for /f "tokens=*" %%i in ('sort 1.txt') do if not !str!==%%i echo !str!>>2.txt & set str=%%i echo !str!>>2.txt |
Последний раз редактировалось muaddib, 03-11-2017 в 23:26. Отправлено: 23:21, 03-11-2017 | #10 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Поиск и изменение строки в файле. | climber89 | Скриптовые языки администрирования Windows | 2 | 31-01-2013 13:25 | |
2007 - Excel - Повторяющиеся строки | JimmOnLine | Microsoft Office (Word, Excel, Outlook и т.д.) | 7 | 26-06-2012 06:55 | |
CMD/BAT - Замена строки в txt файле | Сергей_Першин@vk | Скриптовые языки администрирования Windows | 0 | 07-06-2012 14:56 | |
CMD/BAT - Заменить строки в бат файле | Gala.qwer | Скриптовые языки администрирования Windows | 1 | 11-08-2011 19:16 | |
[решено] Как удалить строки в текстовом файле при отсутсвии файла в опрелеленном месте? | Pozia | AutoIt | 23 | 14-05-2009 21:41 |
|