我有一个批处理文件,想要改进它。有没有一种简单的方法,如果路径末尾有斜杠,就从路径中移除最后一个字符,而不需要用户提供没有尾随斜杠的文件夹路径?
: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
.
作为解决方法。比使用子字符串语法更简洁。 - Barett"C:\My Folder\"
会怎样? - BaSsGazIF NOT "%datapath:~-1%"=="\" SET "datapath=%datapath%\"
。这样做可以强制添加反斜杠。引号的作用是保护路径中的空格。 - Jesse Chisholm%datapath%
包含前导和尾随引号,则可以使用IF "%datapath:~-2,-1%"=="\" SET datapath="%datapath:~1,-2%"
。 - yoyo