2015-05-14 2 views
1

У меня есть следующий цикл в моем Windows, пакетного скриптеПробелов в для цикла в победе партии

set Folder = %~1 

for %%M in (d:\%Folder%\*.exe) do (
    set FileName = %%~nM 
    echo !FileName! 
) 

Когда один из папки имеют пространства %% M является имеет значение до первого пробела. Как я могу это исправить?

ответ

2
set "Folder=%~1" 

for %%M in ("d:\%Folder%\*.exe") do (
    set "FileName=%%~nM" 
    echo !ModuleName! 
) 

Не знаю, где ModuleName происходит от (я полагаю, вы также где-то замедленное расширение) ...

! Не используйте пробелы вокруг знака равенства с командой set, иначе пробелы будут включены как int имя переменной, так и ее значение!

В обычном цикле FOR вы можете поместить двойные кавычки в элементы, содержащие разделители и обрабатывать их должным образом.

+0

Огромное спасибо! ModuleName == Имя_файла (опечатка) – Tanya

Смежные вопросы