Цитата Ирина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! С Рождеством!