1

Предположим, что в пакетном файле, скажем, receive.bat, вызывается с некоторыми аргументами. Теперь выполняется receive.bat, и он должен обработать эти аргументы.

Иногда (но не всегда) аргумент заканчивается косой чертой (например, "C:\a\b\"). Количество аргументов не является фиксированным, и (единственный) такой аргумент может появиться в любом месте списка аргументов.

Как мой файл .bat может удалить \ in \" , например, чтобы получить "C:\a\b"?


Обновить:

Я попробовал приведенные ниже примеры, а третий не работает.
Он просто сказал, что there should not be a SET here .

SET var=C:\
IF %var:~-1%==\ SET var=%var:~0, -1%
@ECHO %var%

SET var2="C:\\
IF %var2:~-2%==\\ SET var2=%var2:~0, -2%
@ECHO %var2%

SET var3="C:\"
IF %var3:~-2%==\a" SET var3=%var3:~0, -2%
@ECHO %var3%

1 ответ1

2

Вы устанавливаете var3 в "C:\" и сравниваете последние два символа с \a "? См. Ниже и на этой странице помощь по извлечению подстроки.

SET var=C:\
IF %var:~-1%==\ SET var=%var:~0,-1%
@ECHO %var%
REM Output: C:

SET var2="C:\
IF %var2:~-1%==\ SET var2=%var2:~0,-1%
@ECHO %var2%
REM Output: "C:

SET var3="C:\"
IF %var3:~-2,1%==\ SET var3=%var3:~0,-2%"
@ECHO %var3%
REM Output: "C:"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .