Remove Trailing Slash From Batch File Input

Brook picture Brook · Jun 1, 2010 · Viewed 40.2k times · Source

I have a batch file that I want to improve. Instead of requiring a user to provide a folder path without a trailing slash, is there an easy way for me to just remove the last character from the path if there is a slash on the end?

: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

Answer

akf picture akf · Jun 1, 2010

you can use syntax similar your evaluation:

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