Согласно википедии консоль в WinCE также является cmd.exe .Однако они не являются одним и тем же cmd.exe, поэтому их функциональность будет отличаться
Из списка Команды командного процессора (Windows CE 5.0) на MSDN, похоже, Windows CE cmd.exeочень примитивен и больше похож на command.com, чем cmd.exe в Windows NT.Например, не поддерживает exit /B
или copy /B
и так далее.Точно так же он не имеет set /P
, set /A
или set "with=quote"
и поддерживает только
SET [variable=[string]]
Я также нашел другой подробный список Команды сценариев для устройств Windows Mobile .В этом списке команда if
, как утверждается, имеет только следующие формы
if [not] errorlevel number scriptCommand
if [not] string1==string2 command
if [not] exist filename command
if [not] procexists processName command
. В этом списке нет if defined
.Однако документ на MSDN не согласен, поскольку в нем не указан странный бланк procexists
, а IF [NOT] DEFINED variable command
один
Тем не менее, оба согласны с тем, что if
может 'else
, поэтому ваш блок if / else тоже не будет работать.И даже если он имеет if defined
, последние строки в вашем скрипте не будут работать, потому что вы использовали start ""
, который недоступен в WinCE.Вы должны использовать START command [parameters]
вместо
В итоге вы получите проблемы с if/else
, set /P
и start ""
(и, возможно, if defined
)