2011-01-26 22 views
8

Estoy utilizando el siguiente archivo por lotes para hacer un archivo zip para cada XML en una carpeta:¿Cómo obtener un archivo de proceso por lotes para manejar espacios en nombres de archivo?

FOR %%f in ("C:\files\*.xml") DO 7za.exe a C:\files\zips\%%~nf.zip (%%f) 

Sin embargo, si el nombre del archivo tiene un espacio en él (test plop.xml), entonces el archivo por lotes no funciona. Parece dividir el nombre y piensa que son 2 archivos.

Cómo modificar el archivo por lotes para que maneje correctamente los nombres de archivo con espacios?

+0

¿Has intentado poner comillas dobles alrededor del nombre del archivo? ej .: '(" %% f ")' –

Respuesta

14

Intente colocar comillas alrededor del nombre del archivo de salida.

Cambio

FOR %%f in ("C:\files*.xml") DO 7za.exe a C:\files\zips\%%~nf.zip (%%f) 

a:

FOR %%f in ("C:\files*.xml") DO 7za.exe a "C:\files\zips\%%~nf.zip" (%%f) 

también puede ser la variable de %% f, puede ser necesario colocar comillas alrededor de esto también.

+0

Gracias. Tu respuesta perfectamente ayuda para mí. –

Cuestiones relacionadas