【发布时间】:2015-10-21 03:47:46
【问题描述】:
我有一个客户端在 Windows Server 2008 R2 上运行 Apple 的 FileMaker Pro Advanced。关联的可执行文件是“FileMaker Pro Advanced.exe”(注意空格)。我的客户在关闭 FileMaker 时遇到了问题;一个解决方案的一部分是编写一个批处理文件,每 15 分钟运行一次,如果 FileMaker 没有运行,它将启动它。我正在帮助处理批处理文件。
我基于此提出了代码:
set target=FileMaker Pro Advance.exe
set startWith=(batch file that starts FileMaker)
tasklist /FI "IMAGENAME eq '%target%’" /NH 2>NUL | find /I "%target%">NUL
if "%ERRORLEVEL%"=="1" %startWith%
if "%ERRORLEVEL%"=="0" goto :EOF
请注意:tasklist 命令行的设计需要使用一组引号;我对那些使用了双引号。文件名中存在空格似乎需要另一组引号;我在上面使用了单引号。
我的技术不行;我收到一条关于格式不正确的命令的错误消息。叹息。
有人有解决方法吗?
如果没有更好的建议,我会要求系统管理员让我将该文件重命名为“FileMakerProAdvanced.exe”之类的名称;那应该工作。我只会在我要求的一定时间内获得该许可。如果他们拒绝我的请求,我需要其他东西。
(眼尖的你会注意到文件名有 26 个字符长。似乎 tasklist 有 25 个字符的限制。我可以解决这个问题(在 find 命令,例如)通过搜索“FileMaker Pro Advanced.ex”;这就是 tasklist 提供 find 的全部内容。我可以在 find 中使用双引号 命令。)
提前感谢您的解决方案和同情。
【问题讨论】:
标签: batch-file windows-server-2008-r2