我有一个批处理文件,在批处理文件中,它在一个特定的目录中查找并保存到一个变量中,即第一个目录/文件的名称。这大致是我在做什么:
FOR /d %%F IN (%INSTALL_DIR%\dir\*) DO (
set NAME=%%~xnF
set NAME_DIR=%INSTALL_DIR%\dir\%NAME%
goto :break
)
当我从命令行运行它时,它工作得很好,并且 NAME_DIR 得到了正确的值。但是,当我双击该文件时,NAME 变量为空。NANE_DIR 因此设置为 %INSTALL_DIR%\dir。为什么会发生这种情况,我能做些什么来解决它?
为了更清楚地说明,在命令行中,这是 NAME 和 NAME_DIR 在回显时相等的内容:
NAME: dir1.3.8
NAME_DIR: D:\root\path\to\dir\dir1.3.8
这是双击时回显的内容:
NAME:
NAME_DIR: D:\root\path\to\dir