cd "C:\path\to\directory\" >nul & echo %CD%
说我在C:\dir
中运行它。我希望它输出C:\path\to\directory
,因为如果我单独并连续地运行每个命令,它就是这样做的。但它没有那样做。当两个命令被排序连接在一起时,它输出当前路径 - 例如。 C:\dir
。
任何想法为什么?或者,有关如何通过CLI从相对路径获取完整路径的任何想法?
答案 0 :(得分:1)
如果连接两个命令,它们就像一个代码块,所有%变量%都不能改变它们的值。你必须使用延迟扩展:
@ECHO OFF & setlocal enabledelayedexpansion
cd "C:\path\to\directory\" >nul & echo !CD!
输出将是:
C:\path\to\directory