Není (AFAIK) vestavěný, ale je k dispozici od SysInternals (živý odkaz). řetězce SysInternals není přímý port unixového nástroje; byl napsán tak, aby našel řetězce Unicode i ASCII:
Práce na NT a Win2K znamená, že spustitelné soubory a objektové soubory budou mít mnohokrát vložené řetězce UNICODE, které u standardních řetězců ASCII nebo programů grep snadno nevidíte.
Věřím, že MinGW obsahuje Windows verzi GNU binutils, která zase obsahuje strings
program. Můžete to zkusit.
Rychlé jednoduché řešení:
more < FILE_PATH.exe | findstr "."
Tím se vytisknou všechny řetězce z libovolného souboru (s trochou nevyžádaného odpadu), oddělené novým řádkem.
Ve skutečnosti se stane more < FILE_PATH.exe
vytiskne ASCII pohled na FILE_PATH.exe do konzole a findstr "."
filtruje vše, co není řetězec (definujte minimální délku přidáním více '.', např. findstr "....."
bude filtrovat pouze řetězce délky 5+).
strings -n 4 FILE_PATH
=> more < FILE_PATH | findstr "...."
strings -n 8 FILE_PATH
=> more < FILE_PATH | findstr "........"
A samozřejmě můžete použít findstr k vytvoření přesnějšího filtru (viz findstr /?
)