从批处理文件输入中删除尾随斜杠

Bro*_*ook 72 substring batch-file

我有一个我想改进的批处理文件.如果在末尾有斜杠,我可以轻松地从路径中删除最后一个字符,而不是要求用户提供没有尾部斜杠的文件夹路径吗?

: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
Run Code Online (Sandbox Code Playgroud)

akf*_*akf 132

您可以使用与您的评估类似的语法:

::Does string have a trailing slash? if so remove it 
IF %datapath:~-1%==\ SET datapath=%datapath:~0,-1%
Run Code Online (Sandbox Code Playgroud)

  • 你也可以考虑在尾部斜杠的情况下添加一个`.`.比子串语法短的lil'. (7认同)
  • 相反,如果你想确保最后有一个反斜杠,那就是:```IF NOT "%datapath:~-1%"=="\" SET "datapath=%datapath%\"`` ` 强迫它。引号保护内部空间。 (3认同)
  • 如果路径中有空格,那么您需要小心引号。如果 `%datapath%` 包含前导和尾随引号,则可以使用 `IF "%datapath:~-2,-1%"=="\" SET datapath="%datapath:~1,-2%"` (3认同)
  • 如果路径是"C:\ My Folder \",该怎么办? (2认同)