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
?