I've got a pretty bizarre issue that I've come across today. I've outlined the steps to reproduce the issue below. I've also already implemented a workaround to this issue which I've posted as well, and so I'm concerned with WHY this is happening and why I need to use the "workaround"?
====================
~ Steps to Reproduce ~
====================
echo test>"2019-10-21 15.36.11.txt"
echo test>"2019-10-21 15.40.40.txt"
echo test>"2019-10-21 16.37.34.txt"
echo test>"2019-10-21 17.59.06.txt"
echo test>"2019-10-21 17.59.12.txt"
echo test>"2019-10-21 17.59.21.txt"
echo test>"2019-10-21 17.59.38.txt"
echo test>"2019-10-21 18.05.45.txt"
echo test>"2019-10-21 19.06.48.txt"
echo test>"2019-10-24 17.36.20.txt"
echo test>"2019-10-24 19.03.26.txt"
echo test>"2019-10-30 16.12.45.txt"
echo test>"2019-10-31 04.37.35.txt"
echo test>"2019-10-31 19.22.43.txt"
echo test>"2019-10-31 19.22.48.txt"
echo test>"2019-10-31 19.22.57.txt"
echo test>"2019-10-31 19.22.59.txt"
echo test>"2019-10-31 19.23.03.txt"
echo test>"2019-10-31 20.19.49.txt"
echo test>"2019-10-31 20.22.20.txt"
echo test>"2019-10-31 20.26.27.txt"
echo test>"2019-10-31 20.26.32.txt"
echo test>"2019-10-31 20.26.40.txt"
echo test>"2019-10-31 20.26.44.txt"
echo test>"2019-10-31 20.26.45.txt"
echo test>"2019-10-31 20.29.22.txt"
echo test>"2019-10-31 20.30.51.txt"
echo test>"2019-10-31 20.32.28.txt"
echo test>"2019-10-31 20.32.37.txt"
echo test>"2019-10-31 20.32.48.txt"
echo test>"2019-10-31 20.32.51.txt"
echo test>"2019-10-31 20.34.15.txt"
echo test>"2019-10-31 20.36.26.txt"
echo test>"2019-10-31 20.36.29.txt"
echo test>"2019-10-31 20.39.49.txt"
echo test>"2019-10-31 20.40.03.txt"
echo test>"2019-11-01 01.22.28.txt"
echo test>"2019-11-01 01.22.31.txt"
echo test>"2019-11-01 01.26.15.txt"
echo test>"2019-11-01 01.27.11.txt"
echo test>"2019-11-01 03.08.07.txt"
echo test>"2019-11-01 15.15.07.txt"
echo test>"2019-11-04 22.20.42.txt"
echo test>"2019-11-04 22.39.26.txt"
echo test>"2019-11-05 15.46.28.txt"
echo test>"2019-11-05 15.46.28_1.txt"
echo test>"2019-11-05 15.46.28_2.txt"
echo test>"2019-11-05 15.46.29.txt"
echo test>"2019-11-05 15.46.29_1.txt"
echo test>"2019-11-05 15.46.29_2.txt"
echo test>"2019-11-05 15.46.29_3.txt"
echo test>"2019-11-05 15.46.30.txt"
echo test>"2019-11-05 15.58.21.txt"
echo test>"2019-11-05 15.58.22.txt"
echo test>"2019-11-05 15.58.22_1.txt"
echo test>"2019-11-05 15.58.23.txt"
echo test>"2019-11-06 22.43.29.txt"
echo test>"2019-11-06 22.43.29_1.txt"
echo test>"2019-11-06 22.43.30.txt"
echo test>"2019-11-06 22.43.30_1.txt"
echo test>"2019-11-06 22.43.30_2.txt"
echo test>"2019-11-06 22.43.30_3.txt"
echo test>"2019-11-06 22.43.30_4.txt"
echo test>"2019-11-06 22.43.31.txt"
echo test>"2019-11-06 22.43.31_1.txt"
echo test>"2019-11-06 22.43.31_2.txt"
echo test>"2019-11-07 16.18.49.txt"
echo test>"2019-11-07 16.18.49_1.txt"
echo test>"2019-11-09 14.49.26.txt"
echo test>"2019-11-09 14.49.27.txt"
echo test>"2019-11-09 14.49.27_1.txt"
echo test>"2019-11-09 14.49.27_2.txt"
echo test>"2019-11-09 14.49.28.txt"
echo test>"2019-11-09 14.49.28_1.txt"
echo test>"2019-11-09 14.49.29.txt"
echo test>"2019-11-10 20.24.19.txt"
echo test>"2019-11-11 00.02.39.txt"
echo test>"2019-11-11 15.13.51.txt"
echo test>"2019-11-11 19.45.44.txt"
echo test>"2019-11-11 22.24.08.txt"
echo test>"2019-11-11 22.32.26.txt"
echo test>"2019-11-11 22.34.43.txt"
echo test>"2019-11-11 22.35.57.txt"
echo test>"2019-11-11 22.36.21.txt"
echo test>"2019-11-11 22.38.05.txt"
echo test>"2019-11-11 22.42.31.txt"
echo test>"2019-11-12 04.52.16.txt"
echo test>"2019-11-15 21.37.01.txt"
echo test>"2019-11-15 21.37.17.txt"
echo test>"2019-11-17 17.15.17.txt"
echo test>"2019-11-18 15.51.10.txt"
echo test>"2019-11-18 15.51.40.txt"
echo test>"2019-11-18 15.51.46.txt"
echo test>"2019-11-18 16.48.58.txt"
echo test>"2019-11-18 16.49.01.txt"
echo test>"2019-11-18 16.49.03.txt"
echo test>"2019-11-18 16.49.11.txt"
echo test>"2019-11-18 16.49.30.txt"
echo test>"2019-11-18 16.49.33.txt"
echo test>"2019-11-18 16.49.35.txt"
echo test>"2019-11-18 16.49.38.txt"
echo test>"2019-11-18 16.50.05.txt"
echo test>"2019-11-18 16.50.11.txt"
echo test>"2019-11-28 19.00.59.txt"
echo test>"2019-11-28 19.01.09.txt"
echo test>"2019-12-06 18.27.12.txt"
echo test>"2019-12-06 18.27.53.txt"
echo test>"2019-12-06 18.28.36.txt"
echo test>"2019-12-06 18.28.59.txt"
echo test>"2019-12-06 21.32.19.txt"
echo test>"2019-12-06 21.34.22.txt"
echo test>"2019-12-08 02.40.25.txt"
echo test>"2019-12-09 04.28.26.txt"
echo test>"2019-12-10 14.09.05.txt"
echo test>"2019-12-10 14.09.16.txt"
echo test>"2019-12-12 14.27.19.txt"
echo test>"2019-12-13 00.58.04.txt"
echo test>"2019-12-13 15.16.43.txt"
echo test>"2019-12-13 23.35.04.txt"
echo test>"2019-12-14 14.13.37.txt"
echo test>"2019-12-15 13.41.33.txt"
echo test>"2019-12-17 11.08.46.txt"
echo test>"2019-12-17 11.08.54.txt"
echo test>"2019-12-17 17.01.03.txt"
echo test>"2019-12-17 17.01.10.txt"
echo test>"2019-12-17 21.44.07.txt"
echo test>"2019-12-18 18.57.58.txt"
echo test>"2019-12-19 16.18.14.txt"
echo test>"2019-12-19 16.36.39.txt"
echo test>"2019-12-19 16.36.47.txt"
echo test>"2019-12-19 16.36.52.txt"
echo test>"2019-12-19 16.52.24.txt"
echo test>"2019-12-19 18.34.12.txt"
echo test>"2019-12-19 18.43.26.txt"
echo test>"2019-12-20 12.27.21.txt"
echo test>"2019-12-20 13.08.47.txt"
echo test>"2019-12-20 13.11.32.txt"
echo test>"2019-12-20 13.14.17.txt"
echo test>"2019-12-21 01.05.30.txt"
echo test>"2019-12-22 19.11.07.txt"
echo test>"2019-12-22 19.44.03.txt"
echo test>"2019-12-24 20.19.44.txt"
echo test>"2019-12-24 20.19.47.txt"
echo test>"2019-12-25 13.02.54.txt"
echo test>"2019-12-25 13.03.00.txt"
echo test>"2019-12-25 13.03.03.txt"
echo test>"2019-12-25 13.09.23.txt"
echo test>"2019-12-25 13.09.56.txt"
echo test>"2019-12-25 13.10.33.txt"
echo test>"2019-12-25 13.10.38.txt"
echo test>"2019-12-25 13.10.44.txt"
echo test>"2019-12-25 13.11.10.txt"
echo test>"2019-12-25 13.11.11.txt"
echo test>"2019-12-25 13.11.25.txt"
echo test>"2019-12-25 13.11.45.txt"
echo test>"2019-12-25 13.11.51.txt"
echo test>"2019-12-25 13.13.26.txt"
echo test>"2019-12-25 13.13.29.txt"
echo test>"2019-12-25 13.13.51.txt"
echo test>"2019-12-25 13.13.58.txt"
echo test>"2019-12-25 13.14.05.txt"
echo test>"2019-12-25 13.15.29.txt"
echo test>"2019-12-25 13.15.32.txt"
echo test>"2019-12-25 13.17.04.txt"
echo test>"2019-12-25 13.17.06.txt"
echo test>"2019-12-25 13.17.17.txt"
echo test>"2019-12-25 13.17.20.txt"
echo test>"2019-12-25 13.17.33.txt"
echo test>"2019-12-25 13.17.48.txt"
echo test>"2019-12-26 13.44.15.txt"
echo test>"2019-12-26 15.49.08.txt"
echo test>"2019-12-26 17.55.57.txt"
echo test>"2019-12-26 18.26.21.txt"
echo test>"2019-12-26 18.29.01.txt"
echo test>"2019-12-26 18.29.39.txt"
echo test>"2019-12-26 18.29.47.txt"
echo test>"2019-12-26 18.32.03.txt"
echo test>"2019-12-26 19.24.15.txt"
echo test>"2019-12-26 22.53.32.txt"
echo test>"2019-12-27 02.43.19.txt"
echo test>"2019-12-28 15.12.38.txt"
echo test>"2019-12-28 15.12.41.txt"
echo test>"2019-12-28 15.58.26.txt"
echo test>"2019-12-28 15.58.33.txt"
echo test>"2019-12-28 15.58.38.txt"
echo test>"2019-12-28 15.58.42.txt"
echo test>"2019-12-28 15.58.59.txt"
echo test>"2019-12-28 15.59.02.txt"
echo test>"2019-12-28 16.00.13.txt"
echo test>"2019-12-28 16.00.16.txt"
echo test>"2019-12-28 16.00.18.txt"
echo test>"2019-12-28 17.42.13.txt"
echo test>"2019-12-28 18.35.56.txt"
echo test>"2019-12-28 18.36.04.txt"
echo test>"2019-12-28 19.23.03.txt"
echo test>"2019-12-28 19.23.07.txt"
echo test>"2019-12-28 19.23.13.txt"
echo test>"2019-12-28 19.23.16.txt"
echo test>"2019-12-28 19.23.18.txt"
echo test>"2019-12-28 19.23.31.txt"
echo test>"2019-12-28 19.23.36.txt"
echo test>"2019-12-28 19.23.43.txt"
echo test>"2019-12-28 20.02.10.txt"
echo test>"2019-12-28 20.02.16.txt"
echo test>"2019-12-28 20.02.25.txt"
echo test>"2019-12-28 20.02.36.txt"
echo test>"2019-12-28 20.02.46.txt"
echo test>"2019-12-28 20.02.52.txt"
echo test>"2019-12-28 21.05.48.txt"
echo test>"2019-12-28 22.15.35.txt"
echo test>"2019-12-28 22.15.36.txt"
echo test>"2019-12-28 22.16.05.txt"
echo test>"2019-12-28 22.36.18.txt"
echo test>"2019-12-28 22.37.13.txt"
echo test>"2019-12-28 22.37.20.txt"
echo test>"2019-12-28 22.37.23.txt"
echo test>"2019-12-28 22.37.25.txt"
echo test>"2019-12-28 22.37.27.txt"
echo test>"2019-12-28 22.37.43.txt"
echo test>"2019-12-28 22.37.47.txt"
echo test>"2019-12-28 22.37.52.txt"
echo test>"2019-12-28 22.38.41.txt"
echo test>"2019-12-28 22.38.43.txt"
echo test>"2019-12-29 00.37.38.txt"
echo test>"2019-12-29 00.37.41.txt"
echo test>"2019-12-29 00.37.44.txt"
echo test>"2019-12-29 00.37.46.txt"
echo test>"2019-12-29 00.38.07.txt"
echo test>"2020-01-03 14.51.49.txt"
echo test>"2020-01-04 13.57.21.txt"
echo test>"2020-01-05 01.01.02.txt"
echo test>"2020-01-05 01.01.30.txt"
echo test>"2020-01-06 02.58.12.txt"
echo test>"2020-01-06 04.55.12.txt"
echo test>"2020-01-06 04.55.53.txt"
echo test>"2020-01-07 01.55.07.txt"
echo test>"2020-01-08 19.13.19.txt"
echo test>"2020-01-08 19.13.44.txt"
echo test>"2020-01-08 19.13.57.txt"
echo test>"2020-01-08 19.14.15.txt"
echo test>"2020-01-08 19.14.18.txt"
echo test>"2020-01-08 19.17.16.txt"
echo test>"2020-01-08 23.24.50.txt"
echo test>"2020-01-08 23.25.19.txt"
echo test>"2020-01-08 23.25.25.txt"
echo test>"2020-01-08 23.25.40.txt"
echo test>"2020-01-09 00.12.27.txt"
echo test>"2020-01-09 00.12.32.txt"
echo test>"2020-01-09 00.12.34.txt"
echo test>"2020-01-09 00.12.36.txt"
echo test>"2020-01-09 00.33.32.txt"
echo test>"2020-01-09 20.50.10.txt"
echo test>"2020-01-09 20.50.15.txt"
echo test>"2020-01-09 20.50.17.txt"
echo test>"2020-01-09 21.04.32.txt"
echo test>"2020-01-09 21.04.37.txt"
echo test>"2020-01-09 21.04.39.txt"
echo test>"2020-01-09 21.04.43.txt"
echo test>"2020-01-09 21.15.25.txt"
echo test>"2020-01-09 21.15.36.txt"
echo test>"2020-01-09 21.56.16.txt"
echo test>"2020-01-12 19.16.32.txt"
echo test>"2020-01-13 19.06.16.txt"
echo test>"2020-01-13 22.06.34.txt"
echo test>"2020-01-14 12.34.06.txt"
echo test>"2020-01-14 16.29.56.txt"
echo test>"2020-01-14 16.29.58.txt"
echo test>"2020-01-14 16.30.05.txt"
echo test>"2020-01-14 16.30.18.txt"
echo test>"2020-01-16 13.20.15.txt"
echo test>"2020-01-16 13.20.25.txt"
echo test>"2020-01-16 13.20.27.txt"
echo test>"2020-01-16 18.07.55.txt"
echo test>"2020-01-18 23.14.01.txt"
echo test>"2020-01-18 23.14.07.txt"
echo test>"2020-01-20 00.11.20.txt"
echo test>"2020-01-20 00.11.28.txt"
echo test>"2020-01-20 00.23.04.txt"
echo test>"2020-01-20 21.17.22.txt"
echo test>"2020-01-20 21.17.58.txt"
echo test>"2020-01-20 21.19.04.txt"
echo test>"2020-01-20 21.19.57.txt"
echo test>"2020-01-20 21.21.57.txt"
echo test>"2020-01-21 01.31.46.txt"
echo test>"2020-01-22 15.34.21.txt"
echo test>"2020-01-22 18.19.55.txt"
echo test>"2020-02-11 15.46.51.txt"
echo test>"2020-02-13 14.10.18.txt"
echo test>"2020-02-14 16.00.12.txt"
echo test>"2020-02-14 16.02.33.txt"
echo test>"2020-02-14 18.39.28.txt"
echo test>"2020-02-14 18.39.35.txt"
echo test>"2020-02-14 18.39.39.txt"
echo test>"2020-02-15 14.15.01.txt"
echo test>"2020-02-15 14.17.26.txt"
echo test>"2020-02-15 16.24.44.txt"
echo test>"2020-02-15 18.45.09.txt"
echo test>"2020-02-15 18.45.50.txt"
echo test>"2020-02-15 18.46.21.txt"
echo test>"2020-02-18 17.11.50.txt"
echo test>"2020-02-18 17.11.53.txt"
echo test>"2020-02-18 17.38.11.txt"
echo test>"2020-02-18 17.38.17.txt"
echo test>"2020-02-18 17.38.25.txt"
echo test>"2020-02-18 17.38.29.txt"
echo test>"2020-02-21 20.47.44.txt"
echo test>"2020-02-28 23.28.23.txt"
echo test>"2020-03-03 15.26.45.txt"
echo test>"2020-03-03 15.27.12.txt"
echo test>"2020-03-03 16.28.37.txt"
echo test>"2020-03-03 16.35.57.txt"
echo test>"2020-03-03 16.36.35.txt"
echo test>"2020-03-03 16.36.41.txt"
echo test>"2020-03-03 16.36.45.txt"
echo test>"2020-03-09 14.56.57.txt"
echo test>"2020-03-09 14.57.11.txt"
echo test>"2020-03-09 14.57.34.txt"
echo test>"2020-03-09 14.57.40.txt"
echo test>"2020-03-11 17.58.47.txt"
echo test>"2020-03-11 19.48.22.txt"
echo test>"2020-03-20 15.56.33.txt"
echo test>"2020-03-20 16.06.19.txt"
echo test>"2020-03-20 16.06.31.txt"
echo test>"2020-03-20 16.06.51.txt"
echo test>"2020-03-20 16.06.58.txt"
echo test>"2020-03-25 13.39.33.txt"
echo test>"2020-03-25 13.39.52.txt"
echo test>"2020-03-25 13.40.03.txt"
echo test>"2020-03-25 13.40.31.txt"
echo test>"2020-03-28 20.28.23.txt"
echo test>"2020-03-28 20.28.26.txt"
echo test>"2020-04-02 14.54.13.txt"
echo test>"2020-04-03 18.05.27.txt"
echo test>"2020-04-03 18.05.28.txt"
echo test>"2020-04-03 18.05.28_1.txt"
echo test>"2020-04-03 18.05.28_2.txt"
echo test>"2020-04-03 18.05.28_3.txt"
echo test>"2020-04-03 18.05.29.txt"
echo test>"2020-04-05 17.21.26.txt"
echo test>"2020-04-23 16.40.07.txt"
echo test>"2020-04-23 16.40.13.txt"
echo test>"2020-04-23 17.24.27.txt"
echo test>"2020-04-23 17.24.31.txt"
echo test>"2020-04-23 17.25.32.txt"
echo test>"2020-04-23 17.25.39.txt"
echo test>"2020-04-23 17.25.51.txt"
echo test>"2020-04-23 17.26.07.txt"
echo test>"2020-04-23 17.26.10.txt"
echo test>"2020-04-23 17.26.19.txt"
echo test>"2020-04-23 17.26.25.txt"
echo test>"2020-04-23 17.34.20.txt"
echo test>"2020-04-23 17.34.51.txt"
echo test>"2020-04-23 17.35.17.txt"
echo test>"2020-04-23 17.35.27.txt"
echo test>"2020-04-23 17.35.36.txt"
echo test>"2020-04-23 17.35.41.txt"
echo test>"2020-04-23 17.35.45.txt"
echo test>"2020-04-23 17.35.53.txt"
echo test>"2020-04-23 17.36.02.txt"
echo test>"2020-04-23 17.36.04.txt"
echo test>"2020-04-23 17.59.46.txt"
echo test>"2020-04-23 17.59.57.txt"
echo test>"2020-04-23 18.00.04.txt"
echo test>"2020-04-23 18.00.13.txt"
echo test>"2020-04-23 18.00.19.txt"
echo test>"2020-04-23 18.00.28.txt"
echo test>"2020-04-23 18.00.33.txt"
echo test>"2020-04-23 18.00.41.txt"
echo test>"2020-04-23 18.00.51.txt"
echo test>"2020-04-23 18.00.59.txt"
echo test>"2020-04-23 18.01.02.txt"
echo test>"2020-04-27 01.57.34.txt"
echo test>"2020-04-27 19.37.21.txt"
echo test>"2020-04-27 19.38.46.txt"
echo test>"2020-04-27 19.39.46.txt"
echo test>"2020-04-27 19.39.48.txt"
echo test>"2020-04-27 19.39.53.txt"
echo test>"2020-05-04 16.35.51.txt"
echo test>"2020-05-04 16.36.11.txt"
echo test>"2020-05-05 18.37.54.txt"
echo test>"2020-05-05 18.38.55.txt"
echo test>"2020-05-05 18.39.08.txt"
echo test>"2020-05-05 18.39.40.txt"
echo test>"2020-05-05 18.39.46.txt"
echo test>"2020-05-05 18.39.48.txt"
echo test>"2020-05-05 18.40.02.txt"
echo test>"2020-05-05 18.40.08.txt"
echo test>"2020-05-05 18.40.10.txt"
echo test>"2020-05-05 18.40.17.txt"
echo test>"2020-05-05 19.47.49.txt"
echo test>"2020-05-28 19.10.13.txt"
echo test>"2020-05-28 19.10.17.txt"
echo test>"2020-05-28 19.10.19.txt"
echo test>"2020-06-01 18.32.04.txt"
mkdir 2007
move 2007* 2007\
But why did that file get moved into that folder? There is no "2007*" in the filename anywhere!
==================
~ Bonus Bizarreness ~
==================
cmd /v:on
for /l %g in (2000,1,2020) do (set year=%g& if exist "!year!*" if not exist "!year!" mkdir !year! & move !year!* !year!\)
Now all the text files are moved into several folders spanning from "2000-2020". But they should have only been moved into two folders, 2019 and 2020, since the filenames only contain those two matching prefixes that the move command would have used to move those files. I don't understand why they are being moved into incorrect folders.
=============
~ Workaround ~
=============
To workaround this issue, I added a hyphen after the year, "!year!-" instead of "!year!"...
move 2007-* 2007\
Which instead of moving the file like it did previously, now gives the output..
"A duplicate file name exists, or the file cannot be found."
which is what it should be telling me without using the hyphen.
Same thing with the "for loop" command...
cmd /v:on
for /l %g in (2000,1,2020) do (set year=%g& if exist "!year!-*" if not exist "!year!" mkdir !year! & move !year!-* !year!\)
Please note that this only happens when ALL of these files are in the same folder. For example, I take the first 10 text files in the folder, and move them into a separate folder, I can then run the commands WITHOUT the hyphen "2007*", and it will correctly move the 10 text files into a "2019" folder like it should.
So can anyone explain why this bizarre behavior is happening? In all the hundreds of batch scripts I've written, this is the first time I've ever come across this issue. I've used this same script to move files for quite some time and it's always worked just fine. However, this is the first time I've ever used it with this many files in one folder. But I have no idea why the amount of files would change it's behaviour???
- Check the "2007" folder which should now contain the file "2019-10-31 20.26.32.txt".
But why did that file get moved into that folder? There is no "2007*" in the filename anywhere!
Presumably you have SFNs (short filenames) enabled on that volume, and the short 8.3 name of 2019-10-31 20.26.32.txt
happens to be 2007CE~1.TXT
.
Confusingly enough, the filename wildcards check both long and short names.
C:\etc>dir /b 2007*
2019-10-31 20.26.32.txt
C:\etc>dir /x | find "2007"
06/08/2020 08:45 PM 6 2007CE~1.TXT 2019-10-31 20.26.32.txt