adapted from https://learn-powershell.net/2013/04/01/list-all-files-regardless-of-260-character-path-restriction-using-powershell-and-robocopy/
note: (some versions of?) robocopy appear to have a bug where the local time
zone is used with the wrong sign, causing it to log timestamps that are out by
2*abs(your locale's difference from UTC). e.g. for Pacific Standard Time,
robocopy's timestamps are 2*abs(-8) = 16 hours off.
list all paths (including folders & empty folders), but no timestamps (because
of a bug/inconsistency, robocopy only prints timestamps for files, not
folders):
robocopy .\targetdir NULL /L /E /NJH /BYTES /FP /XJ /R:0 /W:0
list only files, and include timestamps:
robocopy .\targetdir NULL /L /S /NJH /BYTES /FP /NC /NDL /XJ /TS /R:0 /W:0
Explanation of switches:
/L :: List only - don't copy, timestamp or delete any files.
/S :: copy Subdirectories, but not empty ones.
/NJH :: No Job Header.
/BYTES :: Print sizes as bytes.
/FP :: include Full Pathname of files in the output.
/NC :: No Class - don't log file classes.
/NDL :: No Directory List - don't log directory names.
/TS :: include source file Time Stamps in the output.
/R:n :: number of Retries on failed copies
/W:n :: Wait time between retries: default is 30 seconds.
/XJ :: eXclude Junction points. (normally included by default;
note: due to severe bugs, robocopy does not support junction points).