I'm trying to write a Windows cmd.exe script to count the occurrences of aes after compiling a program from the command line. Its simply an Audit/QA script to ensure we're getting what we expect.
When I use findstr without the pipe, it appears to work fine:
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
...
As soon as I pipe the result to find /c to count occurrences, things blow up. Not only does find not work as expected, it manages to break the proceeding findstr command.
cryptopp-5.6.3>dumpbin /disasm Win32/cryptlib/Debug/rijndael.obj | findstr aes | find /c aes
FIND: Parameter format not correct
FINDSTR: Write error
According to find /?:
If a path is not specified, FIND searches the text typed at the prompt
or piped from another command.
How do I pipe the output of findstr to the input of find?