2016-07-11 4 views
0

у меня есть файл, который есть много строк, и я хочу, чтобы иметь возможность, в пакетном файле, чтобы повторить все линии лиц, которые находятся в настоящем ...Получить список лиц В

Моего текста файл выглядит следующим образом:

LEDEE   IN 2016-07-11 07:49:59             
STEPHAN   IN 2016-07-11 07:56:14             
NADIAB   IN 2016-07-11 07:58:30             
ANGEE   IN 2016-07-11 07:58:59             
STEPHAN   OUT 2016-07-11 08:05:25             
STEPHAN   IN 2016-07-11 08:05:29             
ANGEE   OUT 2016-07-11 08:06:05             
ANGEE   IN 2016-07-11 08:06:11             
ANGEE   OUT 2016-07-11 08:16:11             
JOHN   IN 2016-07-11 08:44:42             
PAUL   IN 2016-07-11 08:48:01             
JOHNNY   IN 2016-07-11 08:49:26             
PABLO   IN 2016-07-11 08:49:41 

Я хочу, чтобы иметь возможность отображать список всех лиц, которые сейчас находятся. Результат должен быть:

LEDEE 
STEPHAN 
NADIAB 
JOHN 
PAUL 
JOHNNY 
PABLO 

Возможно ли это?

Благодаря

+0

Будет ли это разрушить выход к трубе его через 'sort'? Если нет, вы можете использовать цикл 'for/F', чтобы установить переменную в содержимое каждой строки; и для каждой строки, если она не равна предыдущей строке, повторите ее. Что-то вроде 'for/F 'delims =" %% I in (' findstr/i "search" "textfile.txt"^| sort ') делает (некоторые вещи) '. Для получения дополнительной информации см. 'Help for' в консоли cmd. Вам также потребуется отсроченное расширение. Для получения дополнительной информации см. 'Help setlocal'. – rojo

ответ

2

дать вам старт:

@echo off 
setlocal EnableDelayedExpansion 
for /f "tokens=1,2" %%a in (text.txt) do set _%%a=%%b 
echo ---- current status: 
for /f "tokens=1 delims=_" %%x in ('set _ ') do echo %%x 
echo ---- People IN: 
for /f "tokens=1 delims=_=" %%x in ('set _ ^|find "=IN"') do echo %%x 
echo ---- People OUT: 
for /f "tokens=1 delims=_=" %%x in ('set _ ^|find "=OUT"') do echo %%x 
+0

Лицо, которое находится вне, не должно находиться в секции IN, даже если в прецедентной строке указано, что он был IN –

+0

, он получает последний статус для каждого человека. Итак, если вы получаете OUT, а затем снова получаете IN (например, Stephan и Angee в вашем примере), не следует ли их перечислять как IN? – Stephan

+0

Да, они должны –

 Смежные вопросы

  • Нет связанных вопросов^_^