Experimente %% , por exemplo for %%f em vez de for %f , que pode funcionar Em arquivos em lote, você precisa usar for %%f em vez de for %f O for %f é somente para a linha de comando. Alterar todas as referências, então suponho %%~zA em vez de %~zA
Você deveria realmente ter solucionado problemas e tentado até mesmo um simples loop, como for %a in (*.*) do @ECHO %a você perceberia que ele também funcionava na linha de comando e não em um arquivo de lote e talvez você tivesse descoberto o %% exigência.