批处理文件,用于命令解析路径

时间:2016-09-12 21:59:43

标签: batch-file

我正在尝试将文件路径读入Windows批处理文件变量

set print_nodePath=reg query "hklm\software\node.js" /v InstallPath
for /f "skip=2 tokens=3" %%a in ('%print_nodePath%') do set nodePath=%%a
echo %nodePath%

reg查询正确返回

HKEY_LOCAL_MACHINE\software\node.js

InstallPath    REG_SZ    C:\Program Files\nodejs\

但我不知道如何编写'for'命令来获取文件路径,因为它包含一个空格(C:\ Program)。我想我需要加入第3和第4个令牌?

是否有一种“好”的方式来写这个?

1 个答案:

答案 0 :(得分:1)

您只需要进行一些修改:

  • tokens=3更改为tokens=2*;
  • 读取变量%%b而不是%%a;

这是固定代码:

set print_nodePath=reg query "hklm\software\node.js" /v InstallPath
for /f "skip=2 tokens=2*" %%a in ('%print_nodePath%') do set "nodePath=%%b"
echo(%nodePath%

仅当注册表值名称本身不包含空格时才有效。