извините, но я не могу решить эту проблему.У меня в 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), но я должен убедиться, что существует в оболочке, чтоЯ сделал это:
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 "
, но когда я увидел, что он использует пробелы, до сих пор я не знаю, как взять всю строку с пробелами, разделенными запятой.Кто-нибудь может мне помочь?
Я очень ценю это