2010-06-01 39 views
61

Tengo un archivo por lotes que quiero mejorar. En lugar de requerir que el usuario proporcione una ruta de carpeta sin una barra al final, ¿hay alguna manera fácil de eliminar el último carácter de la ruta si hay una barra al final?Eliminar traza final desde entrada de archivo por lotes

:START 
@echo What folder do you want to process? (Provide a path without a closing backslash) 
set /p datapath= 

::Is string empty? 
IF X%datapath% == X GOTO:START 

::Does string have a trailing slash? 
IF %datapath:~-1%==\ GOTO:START 

Respuesta

108

puede utilizar una sintaxis similar a su evaluación:

::Does string have a trailing slash? if so remove it 
IF %datapath:~-1%==\ SET datapath=%datapath:~0,-1% 
+0

Gracias! Me encontré con un problema así, y esta fue la respuesta perfecta. – gregturn

+7

También puede considerar agregar un '.' en el caso de una barra inclinada. Una sintaxis menor que la subcadena. – Barett

+2

¿Qué pasa si la ruta era '" C: \ My Folder \ "'? – BaSsGaz

Cuestiones relacionadas