Накотал небольшой скриптец, в powershell работает, при сохранени в .bat - никаких тело движений....
PowerShell это скриптовый язык выполняемый интерпретатором PowerShell
bat это текстовый файл написанный в нем текст выполняет командный интерпретатор cmd. Откуда ему знать про всякие питоны и повершеллы?
Bat файл будет работать только если вы напишете скрипт на языке командного интерпретатора.
Другие языки вроде всяких питонов, повершеллов, и прочих джав он не понимает.
Скрипты повершелл обычно сохраняются с расширением ps.1 но уж никак bat, и не py.