Remember that CHKDSK /R is will check for bad blocks but not attempt data recovery.
If the Hard Drive decides that the block is really bad it will swap that block out for a spare. You will then lose any chance to recover the data from that bad block.
SpinRite will attempt data recovery before it then let's the drive swap out the bad block for a good one. Before anyone says it for me there are other programs which might work better for you
If you suspect that a drive has bad blocks then you might want to take a complete image backup of the drive before starting the CHKDSK or Spinrite process. If the imaging process shows read or CRC errors then you will know you have bad blocks.
If the CHKDSK process should fail or make the problem worse rather than better (for example the MFT or FAT becomes corrupted) then you can restore the image back (perhaps to a new drive) and then work from there.