Как уже отмечали другие, код, который вы опубликовали, не может быть запущен. И это, конечно, не может ввести пробел между subfolder
и \
.
Но если у вас есть переменная с нежелательными пробелами в конце папки и / или имени файла, от них очень легко избавиться.
Windows не позволяет последнему символу имени файла или папки быть точкой или пробелом - Windows удалит конечные точки и пробелы из имени, если вы попытаетесь его создать. Но такие команды, как DIR, не будут игнорировать завершающий пробел.
D:\>mkdir "my folder "
D:\>dir "my folder "
Volume in drive D has no label.
Volume Serial Number is F8FD-5039
Directory of D:\my folder
File Not Found
D:\>dir "my folder"
Volume in drive D has no label.
Volume Serial Number is F8FD-5039
Directory of D:\my folder
03/29/2012 06:00 PM <DIR> .
03/29/2012 06:00 PM <DIR> ..
0 File(s) 0 bytes
2 Dir(s) 67,054,551,040 bytes free
Вы можете использовать параметр или модификаторы переменных FOR, чтобы обрезать ошибочные конечные точки или пробелы из имен путей. Модификаторы преобразуют имя в стандартный формат, включая удаление конечных точек и / или пробелов из каждого имени папки в пути.
@echo off
set "myVar=my folder "
echo this will fail because of space at end of path
dir "%myVar%"
echo(
echo The ~f modifier strips the trailing space
for %%F in ("%myVar%") do dir "%%~fF"
Вот результаты приведенного выше скрипта
this will fail because of space at end of path
Volume in drive D has no label.
Volume Serial Number is F8FD-5039
Directory of D:\my folder
File Not Found
The ~f modifier strips the trailing space
Volume in drive D has no label.
Volume Serial Number is F8FD-5039
Directory of D:\my folder
03/29/2012 06:00 PM <DIR> .
03/29/2012 06:00 PM <DIR> ..
0 File(s) 0 bytes
2 Dir(s) 67,054,551,040 bytes free