我正在阅读注册表。 然后我在变量中得到一个路径。 我这样做如下:
FOR /F "skip=2 tokens=2*" %%A IN ('%SystemRoot%\system32\REG.exe QUERY "HKLM\SOFTWARE\Wow6432Node\Apache Software Foundation\Procrun 2.0\Tomcat7\Parameters\Log" /v Path') DO set WorkPath=%%B
WorkPath的值类似于“C:\ Program Files \ Apache Software Foundation \ Tomcat 7.0 \ logs”
但问题是我想从变量“WorkPath”获取父目录 不使用“cd”或更改目录
“WorkPath”中的路径应为“C:\ Program Files \ Apache Software Foundation \ Tomcat 7.0”
答案 0 :(得分:1)
set "regCmd=%SystemRoot%\system32\REG.exe QUERY "HKLM\SOFTWARE\Wow6432Node\Apache Software Foundation\Procrun 2.0\Tomcat7\Parameters\Log" /v Path"
FOR /F "tokens=2*" %%A IN ('%regCmd% ^| find "REG_SZ"') DO set "WorkPath=%%~dpB"
完成的更改:
skip
替换为for find
,仅处理skip=4
预定的行(在我的系统中,它需要%%B
才能处理
必填项)%%~dpB
(从注册表中获取的值),因为它是日志文件夹的路径,获取到达该文件夹的路径,即父文件夹的路径。分配的值为%%B
,即{{1}}中指向的文件夹所在的驱动器和路径。