%2 en el archivo por lotes se ignora al ejecutarse en el símbolo del sistema

%2 en el archivo por lotes se ignora al ejecutarse en el símbolo del sistema

Tengo un archivo de imagen llamadofirst%20second.png

Tengo un test.batarchivo que cambia el nombre de las imágenes.

Se parece a esto:

Timeout 3
Copy "C:\first%20second.png" "C:\sub\first%20second.png"
Timeout 3

Cuando se ejecuta el archivo por lotes, hace esto en su lugar

Copy "C:\first0second.png" "C:\sub\first0second.png"

El %2no se incluye

¿Por qué es esto?

Demostración de la ocurrencia.

ingrese la descripción de la imagen aquí

Respuesta1

Debe duplicar el signo de porcentaje para escaparlo correctamente en un script por lotes.

Dominio

Copy "C:\first%%20second.png" "C:\sub\first%%20second.png"

Recursos adicionales

información relacionada