Я пишу пакет для автоматизации установки нескольких параметров, файлов INI и APK на множестве устройств. Я получаю ошибки в партии из-за переменных при показе NULL.Значение переменной, не отображаемое в Win Batch
Я проверил, что config.ini и ADBCommands.ini и ADB + .bat находятся в правильном месте.
Вы можете помочь?
::Global
@echo off
cd C:\
::INI Locations
set mypath=%~dp0
set config=%mypath%config.ini
set Commands=%mypath%ADBCommands.ini
set multi=%mypath%adb+.bat
@pause
::Set Varialbes
@for /f "tokens=1,2 delims==" %%a in (%config%) do (
if %%a==Build set Build=%%b
if %%a==Version set Version=%%b
if %%a==Creator set Creator=%%b
if %%a==DateModified set DateModified=%%b
if %%a==ScreenTimeout set ScreenTimeout=%%b
if %%a==UnknownSources set UnknownSources=%%b
if %%a==ScreenBrightness set ScreenBrightness=%%b
)
@for /f "tokens=1,2 delims==" %%d in (%Commands%) do (
if %%d==ScreenTimeoutCommand set ScreenTimeoutCommand=%%e
if %%d==UnknownSourcesCommand set UnknownSourcesCommand=%%e
if %%d==ScreenBrightnessCommand set ScreenBrightnessCommand=%%e
if %%d==OpenSOTICommand set OpenSOTICommand=%%e
)
::Build information
cls
@echo.
@echo.
@echo BUILD: %Build%
@echo VERSION: %Version%
@echo BUILD CREATOR: %Creator%
@echo LAST UPDATED: %DateModified%
@echo.
@echo.
@pause
Содержание ини файлы CONFIG.INI
Build=XCover 3
Version=1.0.0
Creator=James B
DateModified=20/02/2017
ScreenTimeout=300000
UnknownSources=1
ScreenBrightness=225
Содержанию INI файлы ADBCommands.ini
ScreenTimeoutCommand=shell settings put system screen_off_timeout
UnknownSourcesCommand=shell settings put system install_non_market_apps
OpenSOTICommand=shell am start -n net.soti.mobicontrol.elm.samsung/net.soti.mobicontrol.startup.SplashActivity
¿вы проверили файлы разрешений? – AFR
Все файлы имеют полные системные и пользовательские разрешения – beecho01
Вам не нужно устанавливать переменные FOR для переменных среды для их использования. Просто используйте мета переменные FOR напрямую. Кроме того, у вас уже есть эхо-сигнал, поэтому вам не нужно предшествовать всем вашим командам с помощью @. Кроме того, я не понимаю, почему вы используете: 'cmd.exe/c' для выполнения ваших команд FOR. – Squashman