tasklist.exe, Win Server 2008 R2, 文件名有空格
tasklist.exe, Win Server 2008 R2, file name has spaces
我有一个客户端 运行在 Windows Server 2008 R2 上使用 Apple 的 FileMaker Pro Advanced。关联的可执行文件是 "FileMaker Pro Advanced.exe"(注意空格)。我的客户在 "something" 关闭 FileMaker 时遇到问题;一个解决方案的一部分是每 15 分钟向 运行 写入一个批处理文件,如果它不是 运行ning,这将启动 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 命令中使用双引号。)
在此先感谢您的解决方案和同情。
图像名称过滤器中的空格不会有任何问题,因此无需解决方法,只需删除内部单引号
set "target=FileMaker Pro Advance.exe"
tasklist /fi "imagename eq %target%"
并且输出长度的问题只是针对列模式。您可以更改为 csv 输出格式
tasklist /fi "imagenane eq %target%" /nh /fo:csv | find /i "%target%" >nul
或者,由于您没有从输出中检索任何数据,而不是隐藏 headers,因为它们仅在找到匹配进程时才存在,因此请检查 [=19] 是否存在=]
tasklist /fi "imagenane eq %target%" | find "========" >nul
我有一个客户端 运行在 Windows Server 2008 R2 上使用 Apple 的 FileMaker Pro Advanced。关联的可执行文件是 "FileMaker Pro Advanced.exe"(注意空格)。我的客户在 "something" 关闭 FileMaker 时遇到问题;一个解决方案的一部分是每 15 分钟向 运行 写入一个批处理文件,如果它不是 运行ning,这将启动 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 命令中使用双引号。)
在此先感谢您的解决方案和同情。
图像名称过滤器中的空格不会有任何问题,因此无需解决方法,只需删除内部单引号
set "target=FileMaker Pro Advance.exe"
tasklist /fi "imagename eq %target%"
并且输出长度的问题只是针对列模式。您可以更改为 csv 输出格式
tasklist /fi "imagenane eq %target%" /nh /fo:csv | find /i "%target%" >nul
或者,由于您没有从输出中检索任何数据,而不是隐藏 headers,因为它们仅在找到匹配进程时才存在,因此请检查 [=19] 是否存在=]
tasklist /fi "imagenane eq %target%" | find "========" >nul