batch - 在批处理脚本中使用for循环解析变量时忽略空格

时间:2011-11-03 20:21:17

标签: batch-file

批处理文件

我是批处理脚本的新手。我正在编写一个脚本,它从Windows中的注册表项获取值。我正在使用for循环

for /f "tokens=1*" %%A in ('reg query HKLM\Software\CDupe\ZIB\  /v BackupSetLocation' ) do SET path_temp=%%B
for /f "tokens=1*" %%A in ("%path_temp%") do SET BackupSet_Path=%%B

从这2个for循环中,我得到了注册表项BackupSetLocation的值。

echo %BackupSet_Path% C:\ProgramData\CDupe\CDupe Cloud Backup(x64)\zcb\conf时获得的值。

问题是:

现在来自BackupSet_Path我只想提取

C:\ProgramData\CDupe\CDupe Cloud Backup(x64)\

我试过这个

for /f "tokens=1*" %%A in ('reg query HKLM\Software\CDupe\ZIB\ /v BackupSetLocation' ) do SET path_temp=%%B
for /f "tokens=1-4" %%A in ("%path_temp%") do SET BackupSet_Path=%%B

给予令牌= 1-4,我只获得C:\ProgramData\CDupe\CDupe

因为“CDupe Cloud Backup(x64)”之间有空格。

任何人都可以告诉我如何忽略这些空格并获取此字符串

C:\ProgramData\CDupe\CDupe Cloud Backup(x64)\

感谢您的时间。

1 个答案:

答案 0 :(得分:2)

for /f "tokens=1*" %%A in ('reg query HKLM\Software\CDupe\ZIB\ /v BackupSetLocation' ) do SET path_temp=%%B
for /f "tokens=1-4 delims=\" %%A in ("%path_temp%") do SET BackupSet_Path=%%A\%%B\%%C\%%D\