首页 > 解决方案 > 使用批处理从路径中删除尾部反斜杠

问题描述

我有一个保存在变量中的文件名:

C:\Directory\Directory2\

现在我想要这个:

C:\Directory\Directory2

如何\从文件名或最后一个字符中删除最后一个?

标签: windowsbatch-filecmdpath

解决方案


好吧,不要!删除尾部反斜杠可能会更改路径指向的目标;想想C:\——它指向驱动器的根目录,而C:指向它的当前目录

处理潜在尾随反斜杠的最可靠方法可能是附加., 因为C:\Directory\Directory2\等价于C:\Directory\Directory2\.,C:\Directory\Directory2C:\Directory\Directory2., 因为所有这些路径都指向完全相同的位置。

如果后缀因美观原因而受到干扰,请在附加后通过for循环.解决:

set "dirPath=C:\Directory\Directory2\"
for %%I in ("%dirPath%.") do echo "%%~fI"

修饰符~f定义解析路径并将相对路径转换为完整/绝对路径。

如果提供的路径甚至可能以\.或类似的东西结尾C:.,附加另一个.会改变它的目标;然而,这可以for在附加之前通过另一个循环来解决.

set "dirPath=C:\Directory\Directory2\."
for %%J in ("%dirPath%") do for %%I in ("%%~fJ.") do echo "%%~fI"

请注意,它会for解析通配符,例如?*


推荐阅读