Is there a utility in DOS or Windows that is as thorough as badblocks on Linux?
The best tool I've ever encountered for testing a hard drive for bad sectors is called SpinRite:
It was created by Steve Gibson (who writes most of his code in Assembler), and I remember using it back in the late 1980s on XT computers (with 4.77 MHz 8086/8088 processors) to recover bad sectors from failing hard drives.
The current version also works very well (and you also get the benefit of the many years of Steve Gibson's experience in maintaining this software to ensure it works reliably with all types of hard drives).
It is far more thorough than the ScanDisk or ChkDsk programs included with DOS and Windows.
chkdsk with the appropriate switch
/R Locates bad sectors and recovers readable information
/b NTFS only: Clears the list of bad clusters on the volume and rescans all allocated and free clusters for errors. /b includes the functionality of /r. Use this parameter after imaging a volume to a new hard disk drive. Works only on vista or better.