3

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

Когда я использую 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?

3 ответа3

8

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

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

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

2

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

1

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

find /c /v ""

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .