adb pull says it pulled all of the files from my Android phone into my Windows PC but in reality it didn't So I am using adb to copy all of my Android files to my Windows PC with this command: adb pull -a /mnt/sdcard C:\backup 

And when it's done it says all x amount of files have been pulled, I can confirm that the number of pulled files matches the amount of files that reside inside the folder of my Android storage but when I check how many files are actually in the C:\backup folder, I see about 200 missing or in other words adb skipped about 200 files and did not copy them over to my C:\backup folder. 

I understand that this could be due to path limit or due to some files containing characters in their filenames that Windows' NTFS file system just doesn't allow.

How can I see what files are actually being skipped? Is there a switch in adb or some trick?
Just pulling all files via adb to a WIndows computer has multiple problems:


Android/Linux allows multiple files in one directory that just differ in their case. 
The file-system on Linux allow characters in file- and directory names that are disallowed on Windows
Some file-names are completely disallowed on Windows which are just regular file-names on Linux/Android
There is a path limit as you have already mention that may cause trouble


Hence the best solution to create a full backup of the sd-card is to pack all files into one tar archive as all file-system limitation of Windows can bypassed using this method.

Via adb you create a full backup of the sd-card using the following command:

adb exec-out "cd /storage/emulated/0 &amp;&amp; tar c * -" &gt; sdcard.tar


This command creates the tar archive on the device and directly streams the data of the tar archive through adb to your PC and saves it there as sdcard.tar.