batch - игнорировать пробелы при разборе переменной, используя цикл for в пакетном скрипте - PullRequest
0 голосов
/ 04 ноября 2011

пакетный файл

Я новичок в пакетных сценариях. Я писал сценарий, который получает значение из раздела реестра в Windows. Я использую для цикла

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 для циклов я получаю значение для ключа реестра 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 Ответ

2 голосов
/ 04 ноября 2011
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\
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...