Más que complicado lo encuentro desconcertante. Parece como si algunos comandos del MSDOS, o incluso algunos contextos, no distinguieran entre "–" y "-" y son esos comandos/contextos los que "zancadillean" los intentos de hacer lo que queremos en este caso. Pero otros comandos/contextos sí que los distinguen.
Si se trata de resolver algún problema concreto te sugiero que lo hagas con PS y el siguiente "guión":
Get-ChildItem -Path *–*.*| rename-item -newname {$_.Name -replace '–', '-'}
Si no tienes experiencia con PS te cuento como puedes hacerlo:
1. Salvas el contenido del guión anterior en alguna carpeta (digamos d:\guiones) con un nombre y extensión PS1, por ejemplo CAMBGUI. PS1. Para no complicar el punto 5 es conveniente que la carpeta elegida esté en la misma unidad que la de trabajo del punto 3 (en este ejemplo la unidad D:)
2. Abres una ventana PS, por ejemplo con Inicio/<botón derecho>/Ejecutar/Powershell
3. Te sitúas, en el entorno PS, en la carpeta donde están los archivos a tratar, usando el comando CD como harías desde una ventana CMD/MSDOS (si la carpeta destino tiene espacios hay que ponerla entrecomillada)
4. Prueba, por ejemplo con comandos tipo DIR *–*.TXT o DIR *-*.TXT, la situación anterior a la ejecución.
5. Ejecuta el guión tecleando ..\guiones\cambgui (tal cual)
6. Si no da errores repite el comando 4 para comprobar que se ha hecho el cambio
7. Cierra el entorno PS tecleando EXIT