Another thing with SHELL is things not being parsed properly if spaces are involved.
SHELL "Do this.exe" is not the same as SHELL CHR$(34) + "Do this.exe" + CHR$(34)
The first is parsed by the command line as two separate parameters -- "DO" with the parameter "this.exe" as an optional tag along.
Think of it as if you did something such as SHELL "compress thisfile.txt". You would shell to the "COMPRESS" command, and try to compress "this file.txt", which is something much different than the text file called "compress thisfile.txt"....
The way the original code is written, I'd update it to make use of the CHR$(34) quotes to help prevent any issues with spaces in the file names.
SHELL _HIDE "mkdir " + CHR$(34) + "checknofile\" + DATE$ + CHR$(34)
From my experience, 90% of all SHELL issues arises from issues with the command line not parsing what you sent it properly.