窗口批处理文件-当前文件夹名称被截断

窗口批处理文件-当前文件夹名称被截断

在我的 Win7 x64 机器上,当我运行此命令来查找当前文件夹名称时

for %* in (.) do echo %~n*

它适用于包含字母字符的文件夹。但是,对于仅包含数字的文件夹名称,最后一部分会被截断。

例如

C:\temp\2.4.0> for %* in (.) do echo %~n* # outputs 2.4
C:\temp> for %* in (.) do echo %~n*       # outputs temp

不确定为什么会发生这种奇怪的行为。还有其他方法可以找出当前文件夹名称吗?“当前”是指运行 bat 文件的文件夹。

答案1

对于文件夹名称为“2.4.0”的情况,Windows 会将“2.4”视为名称,将“.0”视为扩展名。

因此,如果您想要全名(包括扩展名),那么您需要使用%~nx*

顺便说一句,这是非常奇怪的代码。用作*FOR 变量可能会让普通人感到困惑。

相关内容