2013-05-03 2 views
0

обратную косую черту, я хочу функцию, которая будет удалить последний обратный слэш/слэш, теперь я пишу этот код несколько раз:Пакетная функция для удаления Продольный

IF %variable:~-1%==\ SET variable=%variable:~0,-1% 

Так что я буду иметь л, как этот

set var1=C:\Folder\ 
call :removeTrailingBackSlash var1 

echo %var1% - я должен видеть "C: \ Папка" здесь

ответ

1
@ECHO OFF 
SETLOCAL 
SET var1=c:\somewhere\\\\\\\\\\\\ 
CALL :removeTrailingBackSlash var1 
ECHO var1=%var1% 
GOTO :eof 
:removeTrailingBackSlash 
IF NOT DEFINED %1 GOTO :eof 
SETlocal 
CALL SET $_=%%%1%% 
IF %$_:~-1%==\ endlocal&CALL SET "%1=%%%1:~0,-1%%"&GOTO removeTrailingBackSlash 
GOTO :eof 

Эта процедура должна удалите ваши задние обратные косые черты. Как это работает, я уйду в качестве упражнения для читателя :)

+0

oh my good :) спасибо :) – Bax

+0

Я выполнил свое упражнение и нашел, ваш великолепный 'removeTrailingBackSlash' удаляет еще больше, чем конечные b-косые черты:) – Endoro

+0

Что еще он удаляет .. – user2033427

Смежные вопросы