команда поиска без новой строки (клавиши Enter)

#batch-file #findstr

#пакетный файл #findstr

Вопрос:

Мне нужно использовать команду findstr без новой строки.

Мой файл «prova.txt «содержит:

 La#
Do#
Fa#
  

Мой пакетный файл содержит:

 @echo off
FINDSTR Do# prova.txt
  

Результатом выполнения команды является:

 Do#
//second empty line
  

Вместо этого я хотел бы, чтобы это было:

 Do#
  

Как мне это получить?

Я объясняю лучше:

Мне не нужна новая строка (клавиши Enter) после команды findstr.

Комментарии:

1. Вы имеете в виду, что вам не нужна завершающая новая строка?

2. каждая команда (почти) выдает завершающую пустую строку. У вас с этим особая проблема? Вы могли бы написать скрипт для вывода без этой пустой строки, но я сомневаюсь, что оно того стоит, возможно, у вас в этом особая потребность.

3. Что вы пытаетесь сделать? Каков конечный результат вашего кода?

4. Не существует волшебного, (если вы не используете соответствующую оболочку) , решения echo -n. Для решения с использованием командного скрипта NT потребовалась бы реальная задача с реальными строками и подлинным конечным продуктом.

5. точно @aschipfl

Ответ №1:

Я не понимаю, что вы пытаетесь сделать. Но попробуйте вот так :

 @echo off

for /f "delims=" %%a in ('FINDSTR "Do#" "prova.txt"') do echo|set /p="%%a"
echo.
  

Комментарии:

1. Я думаю, вы разрушаете эффект, записывая CRLF впоследствии :D

2. @Stephan Ты пробовал это? Если вы не введете ее, результат будет таким: Do#C:UserspcDesktop> вот почему я вставил echo. после…..

3. на самом деле, да, я сделал. Кстати: работает только в том случае, если совпадений не более одного.

4. @SachaDee Это не непонятно, это ясно показывает, что я не хочу новую строку (клавиши Enter) после команды findstr. Что неясно?