Я заметил, что мой пакетный скрипт не работает должным образом, если в именах папок есть пробелы:

C:\ProgramFiles(x86)\abc\def\example.bat → все задачи выполнены правильно

C:\Program Files (x86)\abc\def\example.bat → неправильное поведение

Какие изменения должны произойти?

@echo off

for %%F in ("%~dp0..\*.wgm") do (
set "file=%%~nxF"
move "%%F" "%cd%" >nul
goto :next
)
:next
if not exist %cd%\output md output
if not exist %cd%\temp md temp

echo File "%file%" was moved from "%~dp0..\" to "%cd%" && move "*.wgm" "%cd%\"

for /d %%i in ("%cd%\") do ( cd "%%i" ) && for %%i in (*.wgm) do tool.exe *.wgm "%%~ni".dat "643054977005802"

move "%cd%\*.wgm" temp\
move "%cd%\*.dat" output\

if exist %~dp0..\*.wgm call example.bat
if not exist %~dp0..\*.wgm goto :last

:last
for /r %%x in (*.dat) do ren "%%x" *.wgm
move "%cd%\temp\*.wgm" %~dp0..\ && rmdir /s /q "%cd%\temp"

exit

0