Сбой пакета при выполнении команды findstr

#batch-file #cmd #findstr

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

Вопрос:

После поиска я нашел этот фрагмент кода, который я, конечно, изменил для работы с остальной частью моего кода:

 set /p answ=

echo.%answ%|findstr /C:":name" >nul 2>amp;1 amp;amp; @echo %answ::name=%> Libraryuser1.lib amp; pause || echo Not found. amp; pause amp; goto chat
  

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

 SET /p _test=

:: For Above: 12345:abcabc

echo.%_test%|findstr /C:":ab" >nul 2>amp;1 amp;amp; @echo %_test::ab=%> Libraryuser1.lib amp; pause || echo Not found. amp; pause
  

Я что-то делаю не так? Есть ли другая команда, которую я могу использовать, чтобы найти что-то во входных данных?

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

1. Используйте скобки и пробелы. У вас не может быть переменных, расширяющихся в число, и не иметь пробелов вокруг символов перенаправления. Скобки указывают Windows, как группировать ваши команды.

Ответ №1:

Не проверяя ваш код, я добавил несколько важных круглых скобок.

 set /p answ=

echo.%answ%|findstr /C:":name" >nul 2>amp;1 amp;amp; (@echo %answ::name=%> Libraryuser1.lib amp; pause) || (echo Not found. amp; pause amp; goto chat)