В cmd.exe %1%
ничего не значит, используйте %1
или, лучше, %~1
, который вместо этого удаляет возможные кавычки.
Также используйте двойные кавычки для литеральных выражений для sed. Одиночные кавычки будут переданы в sed.
set filename=%~1
echo.%filename%| sed "s/\([A-Z\)/ \1/g"
В bash используйте "
вокруг ваших $
выражений.