Em vez disso, tente executar:
FOR /R "D:\cnosftp\" %I IN (*.gz) DO echo "C:\Program Files-Zipz.exe" x "%I" -aoa -o"%~dpI"
Certifique-se de que a saída é o que você espera.
Dica: provavelmente não será. Substitua% por %% conforme necessário. (Se dois% não funcionarem, tente três ou quatro, mas acho que dois podem ser suficientes.)
O problema provável é que o comando FOR pode precisar de% extra quando executado a partir de um arquivo em lotes. Usando o comando echo, para mostrar qual comando você realmente estará executando, geralmente ajudará a determinar quais variáveis estão expandindo a maneira que você deseja / precisa, e quais variáveis precisam de% s adicionadas.