Batch file 为什么';我的批处理文件不能在Windows CE中工作吗?

Batch file 为什么';我的批处理文件不能在Windows CE中工作吗?,batch-file,cmd,scripting,windows-ce,Batch File,Cmd,Scripting,Windows Ce,我的脚本未在Windows CE版本8上执行 我从用户那里获取一个文件路径作为输入,附加文件名并尝试“启动”它 但不考虑@echo off,在设备中运行时,所有命令都显示在控制台中。此外,所有启动命令和set/p命令均未运行。显示错误 @ echo off if exist clientshutdown3.exe ( start clientshutdown3.exe start ConmanClient3.exe start CMAccept3.exe start MS

我的脚本未在Windows CE版本8上执行

我从用户那里获取一个文件路径作为输入,附加文件名并尝试“启动”它

但不考虑
@echo off
,在设备中运行时,所有命令都显示在控制台中。此外,所有启动命令和
set/p
命令均未运行。显示错误

@ echo off
if exist clientshutdown3.exe (
   start clientshutdown3.exe
   start ConmanClient3.exe
   start CMAccept3.exe
   start MSVSMON.EXE
 ) else (
   set /p mypath=Enter path of pdf file: 
)

if defined mypath start "" "%mypath%\clientshutdown3.exe" 
if defined mypath start "" "%mypath%\ConmanClient3.exe" 
if defined mypath start "" "%mypath%\CMAccept3.exe" 
if defined mypath start "" "%mypath%\MSVSMON.EXE"

Windows CE命令外壳的功能远不如NT兄弟。 CE下不支持设置/P

自v5以来,shell一直没有更改。()

以下是v5支持的命令及其参数的列表。

如果确实需要使用shell解决此问题,可以使用另一种语言轻松编写此行为

祝你好运。

根据维基百科。但是,它们不是相同的cmd.exe,因此它们的功能将不同

从MSDN上的列表中可以看出,Windows CE的cmd.exe非常原始,比Windows NT的cmd.exe更像command.com。比如它等等。类似地,它只支持

SET [variable=[string]]
我还找到了另一份详细的清单。在此列表中,声明仅包含以下表格

if [not] errorlevel number scriptCommand 
if [not] string1==string2 command 
if [not] exist filename command 
if [not] procexists processName command
此列表中没有定义的
。但是不同意,因为它没有列出奇怪的
procexists
表单,而是
IF[NOT]定义的变量命令
one

然而,双方都同意,if
不能有一个
else
,因此if/else块也不能工作。即使定义了
,脚本中的最后一行也无法工作,因为您使用了WinCE中不可用的
start”“
。你必须改用


总之,您会遇到
if/else
set/P
start”“
(如果定义了
,可能还会出现
)显示的错误是什么?您能测试一些简单的错误吗?创建一个新文件并执行以下操作
set/p“mypath=输入pdf文件的路径:&&call echo%mypath%&&pause
此外,您是否仍在运行与上一个问题更改前相同的cmd窗口?请记住,有人破坏了环境。@GerhardBarnard我只使用您的代码,变量名设置为mypath。执行set/p时,它没有等待用户输入。那么可能
set
不允许
/p
开关?您是否可以从cmdline手动运行
set/?
,并查看其帮助中是否有任何
/p
开关?
set/p
如果已定义
是Windows NT的cmd.exe功能。因此,它们可能在WinCE中不可用。尝试
echo%comspec%
查看您的shell是什么