Tomcat 使用批处理脚本从变量获取父级

Tomcat 使用批处理脚本从变量获取父级,tomcat,batch-file,Tomcat,Batch File,我正在看一本注册表。 然后我得到一个变量内部的路径。 我的做法如下: 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 工作路径的值类似于“C:\Program Fi

我正在看一本注册表。 然后我得到一个变量内部的路径。 我的做法如下:

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
工作路径的值类似于“C:\Program Files\Apache Software Foundation\Tomcat 7.0\logs”

但问题是我需要变量“WorkPath”中的父目录 不使用“cd”或更改目录

“工作路径”中的路径应为“C:\Program Files\Apache Software Foundation\Tomcat 7.0”

所做的更改:

  • 命令已拆分以更好地适应屏幕,不需要
  • 将for子句中的
    skip
    替换为
    find
    ,以仅处理 预期行(在我的系统中,它需要
    skip=4
    来仅处理 所需线路)
  • 并且,由于它是日志文件夹的路径,因此不直接分配
    %%B(从注册表读取的值),而是获取到达该文件夹的路径,即父文件夹的路径。分配的值是
    %%~dpB
    ,即
    %%B
    中指向的文件夹所在的驱动器和路径
谢谢。。输出为“C:\Program Files\Apache Software Foundation\Tomcat 7.0\”,但这就是我想要的。
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"