Компьютерный форум 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=282937)

bboutte 30-05-2014 18:08 2357884

Сортировка по доменам
 
Помогите написать сортировку по доменам.

PHP код:

FINDSTR /c:"@mail"   1.txt>Mail.txt
FINDSTR 
/c:"@bk"  1.txt>Mail.txt
FINDSTR 
/c:"@list"  1.txt>Mail.txt
FINDSTR 
/c:"@inbox"  1.txt>Mail.txt
FINDSTR 
/c:"@yandex" 1.txt>Yandex.txt
FINDSTR 
/c:"@ya." 1.txt>Yandex.txt
FINDSTR 
/c:"@narod" 1.txt>Yandex.txt 

После того, как отсортировалось, в файле Mail домен только inbox, а в файле Yandex narod. Помогите пожалуйста, чтобы текст добавлялся в файл, а не пересоздавал его

Georgio 30-05-2014 18:52 2357897

Код:

@echo off
setlocal enabledelayedexpansion
for %%i in (
 @mail
 @bk
 @list
 @inbox
 @yandex
 @ya.
 @narod
 ) do (
 set /a n+=1
 if !n! leq 4 (
  set "file=Mail.txt"
  ) else (
  set "file=Yandex.txt"
  )
 findstr /lic:"%%i" "1.txt">>"!file!"
 )
endlocal
exit /b


Habetdin 30-05-2014 20:13 2357922

bboutte, для повторяющихся назначений измените перенаправление вывода (>) на перенаправление с добавлением (>>):
Код:

FINDSTR /c:"@mail"  1.txt >Mail.txt
FINDSTR /c:"@bk"    1.txt>>Mail.txt
FINDSTR /c:"@list"  1.txt>>Mail.txt
FINDSTR /c:"@inbox"  1.txt>>Mail.txt
FINDSTR /c:"@yandex" 1.txt >Yandex.txt
FINDSTR /c:"@ya."    1.txt>>Yandex.txt
FINDSTR /c:"@narod"  1.txt>>Yandex.txt


Iska 30-05-2014 20:29 2357928

Можно ещё вспомнить, что параметр «/c» может быть множественным. Сие к тому же позволит сократить число проходов:
Код:

type "1.txt"|>"Mail.txt"  findstr.exe /c:"@mail"  /c:"@bk" /c:"@list"  /c:"@inbox"
type "1.txt"|>"Yandex.txt" findstr.exe /c:"@yandex" /c:"@ya" /c:"@narod"



Время: 03:29.

Время: 03:29.
© OSzone.net 2001-