Вопрос: «НАЙТИ: формат параметров не правильный» и «FINDSTR: Ошибка записи» с помощью Pipes


Я пытаюсь написать Windows cmd.exe сценарий для подсчета вхождений aes после компиляции программы из командной строки. Это просто сценарий аудита / проверки подлинности, чтобы гарантировать, что мы получаем то, что ожидаем.

Когда я использую findstr без трубы, он работает нормально:

cryptopp-5.6.3>dumpbin /disasm Win32/cryptlib/Debug/rijndael.obj | findstr aes
  000000C1: 66 0F 3A DF C0 00  aeskeygenassist xmm0,xmm0,0
  00000206: 66 0F 3A DF C0 00  aeskeygenassist xmm0,xmm0,0
  00000345: 66 0F 38 DB 04 81  aesimc      xmm0,xmmword ptr [ecx+eax*4]
  00000366: 66 0F 38 DB 04 81  aesimc      xmm0,xmmword ptr [ecx+eax*4]
  0000039F: 66 0F 38 DB 04 81  aesimc      xmm0,xmmword ptr [ecx+eax*4]
  00000078: 66 0F 38 DC C8     aesenc      xmm1,xmm0
  000000AB: 66 0F 38 DC C8     aesenc      xmm1,xmm0
  ...

Как только я передаю результат find /c чтобы подсчитывать происшествия, все взорвалось. Мало того, что find не работает должным образом, ему удастся нарушить findstr команда.

cryptopp-5.6.3>dumpbin /disasm Win32/cryptlib/Debug/rijndael.obj | findstr aes | find /c aes
FIND: Parameter format not correct
FINDSTR: Write error

В соответствии с find /?:

If a path is not specified, FIND searches the text typed at the prompt
or piped from another command.

Как я могу выполнить вывод findstr на вход find?


2
2017-10-06 18:49


Источник




Ответы:


Использовать кавычки по параметру find /c "foo",


2
2017-10-06 19:09





Я смог напрямую сделать то, что мне нужно было сделать с этим синтаксисом:

find.exe "" "Найти это" "" * .log

С двойными кавычками TRIPLE я думаю, что 2 из них будут потребляться POSH, оставив одну цитату FIND, чтобы увидеть .. Это сработало для меня на сервере 2012 R2.


3
2017-11-17 21:37



На вопрос был удовлетворительно ответил, добавив " перед поисковой строкой и другой в конце. Если это не работает для вас, это говорит о том, что у вас другая ситуация. Тот факт, что вы говорите о «POSH», который не упоминается в вопросе, поддерживает это. Если вы считаете, что ваша проблема (что бы это ни было) относится к другим людям, вы должны задать новый вопрос, опишите вашу ситуацию и опубликуйте свой собственный ответ. (Вы можете быть подвергнуты небольшой задержке, прежде чем система позволит вам ответить на ваш собственный вопрос.) - G-Man
этот ответ правильный. Я использую оболочку Power в ConEmu и вам нужно использовать тройные кавычки. Пожалуйста, верните свой нижний план. - Amadeusz Wieczorek
Второе, что это работает / требуется с помощью vanilla powershell на Win 10, где у меня была та же проблема. - Nat Bowman


"string" параметр является обязательным в find, Попробуйте трубопроводы findstr чтобы:

find /c /v ""

1
2017-10-06 19:10