Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Сообщения: 874
Благодарности: 575

Профиль | Отправить PM | Цитировать


Цитата Ирина1986:
можно ли написать такой bat например в файле 1.txt есть много много слов и строк.. как мне найти слова имя которых известно на половину и результат записать в файл txt в столбик. »



Ирина1986, определения понятия "слово" отличаются в лингвистике и информатике. Если для простоты принять за слово последовательный набор символов в тексте, разделённый символами пробела, табуляции и перехода на новую строку, то в рамках создания "чистого" пакетного файла не существует ничего лучше решений такого типа:


Код: Выделить весь код
@<"1.txt">"1.log" (
for /f "delims=" %%i in ('more^| findstr /ir "\<первая_половина_слова"') do @(
 for %%j in (%%i) do @(
  for /f %%k in ('echo "%%j"^| findstr /ir "^\"первая_половина_слова.*\""') do @(
   echo %%~k
   )
  )
 )
)
;

Код: Выделить весь код
@<"1.txt">"1.log" (
for /f "delims=" %%i in ('more^| findstr /ir "вторая_половина_слова\>"') do @(
 for %%j in (%%i) do @(
  for /f %%k in ('echo "%%j"^| findstr /ir "\".*вторая_половина_слова\"$"') do @(
   echo %%~k
   )
  )
 )
)
.



Этот метод имеет много недостатков:
1) в тексте не должно быть кавычек;
2) символы
Цитата:
,
,
Цитата:
;
,
Цитата:
=
будут разделять "слово" на несколько "слов";
3) "слова", содержащие символы
Цитата:
*
и
Цитата:
?
,
будут проигнорированы;
4) специальные символы в шаблоне поиска должны экранироваться символом
Цитата:
\
;
5) могут встретиться и другие нюансы.





Цитата Ирина1986:
и второй вопрос есть файл 1.txt в нем много много много строк как оставить только 50 строк а остальные строки удалить и все записать в log.txt »



Код: Выделить весь код
@<"1.txt">"log.txt" (
for /l %%i in (1 1 50) do @(
 set/p x=
 if defined x (cmd/v/c echo.!x!) else (echo.)
 set x=
 )
)




Ирина1986, привет от ComSpec и Georgio! С Рождеством!

Отправлено: 18:24, 06-01-2015 | #2