Is there a Windows equivalent of the Unix "strings" command?

Not (AFAIK) built in, but there is one available from SysInternals (live link). The SysInternals strings isn't a straight port of the Unix tool; it was written to find Unicode strings as well as ASCII:

Working on NT and Win2K means that executables and object files will many times have embedded UNICODE strings that you cannot easily see with a standard ASCII strings or grep programs.


I believe MinGW contains a Windows version of GNU binutils, which in turn contains the strings program. You could try that.


A quick simple solution:

more < FILE_PATH.exe | findstr "."

This will print all strings from any kind of file ( with a little extra junk ), separated by a new line.

What actually happens is more < FILE_PATH.exe prints an ascii view of FILE_PATH.exe into the console, and the findstr "." filters out anything that isn't a string ( define a minimum length by adding more '.' e.g. findstr "....." will filter for only strings of length 5+ ).

strings -n 4 FILE_PATH => more < FILE_PATH | findstr "...."

strings -n 8 FILE_PATH => more < FILE_PATH | findstr "........"

And of course you can use findstr to make a more exact filter ( see findstr /? )


The Sysinternals tool Strings is a Windows console program which can extract ASCII And Unicode strings from binary files.