2011-11-03 11 views
0

バッチファイルバッチ - バッチスクリプトでforループを使用して変数を解析する際にスペースを無視する

私はバッチスクリプトに初心者です。私はWindowsのレジストリキーから値を取得するスクリプトを書いていました。私は、ループのため、この2からループ

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 

のために使用しています、私はBackupSetLocationキーのレジストリの値を取得します。

echo %BackupSet_Path%C:\ProgramData\CDupe\CDupe Cloud Backup(x64)\zcb\confのときの値です。

問題は次のとおりです。

今、私は唯一の

C:\ProgramData\CDupe\CDupe Cloud Backup(x64)\を抽出したいBackupSet_Pathから。 "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

を取得します。

誰がどのようにそれらの空白を無視し、この文字列をあなたの時間のための

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

感謝を得るために私に教えてくださいすることができます。

+2

http://ss64.com/nt/for_f.html「delims = \」? –

答えて

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\ 
関連する問題