用逗号分隔批处理delim中的令牌,但字符串之间有空格

时间:2018-11-22 22:08:46

标签: batch-file

对不起,但我无法解决此问题。我的WinReg中有以下字符串:

  

shell REG_SZ cscript C:\ shell.vbs C:\ start.bat,cscript   C:\ shell.vbs C:\ start2.bat,cscript C:\ shell.vbs C:\ start3.bat

我将创建其他“ start.bat”(start.bat是一个示例),但是我必须确定shell中是否存在,我所做的是这样的:

set llave="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
set campo=Shell
set existe=0

for /f "tokens=3" %%a in ('reg query %llave%  /V %campo%  ^|findstr /ri "REG_SZ"') do set datos=%%a

:SigDato
if "%datos%" == "" goto CreaShell

for /F "tokens=1* delims=," %%a in ("%datos%") do (
    if "%%a"=="C:\path\start4.bat" (
        set existe=1
    ) else (
        if "%existe%"=="1" (
            set existe=1
        ) else (
            set existe=0
        )
    )
    set "datos=%%b"
)

goto SigDato

:CreaShell
if "%existe%"=="0" (
    echo entro
    reg add %llave% /v %campo% /t REG_SZ /d %shellReg%,C:\path\start4.bat /f
)

它在测试中工作正常,因为我没有空格

  

“ cscript C:\ script.vbs C:\ start.bat”

但是当我看到它使用空格时,直到现在我还不知道如何将所有带空格的字符串用逗号分隔。有人可以帮我吗?

我非常感谢

0 个答案:

没有答案