tasklist.exe, Win Server 2008 R2, името на файла има интервали

Имам клиент, работещ с FileMaker Pro Advanced на Apple на Windows Server 2008 R2. Свързаният изпълним файл е "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

Моля, обърнете внимание: Дизайнът на командния ред на списък със задачи изисква използването на набор от кавички; Използвах двойни кавички за тях. Наличието на интервали в името на файла изглежда изисква друг набор от кавички; Използвах единични кавички по-горе.

Техниката ми не работи; Получавам съобщение за грешка за неправилно съставена команда. Въздишка.

Някой има ли заобиколно решение?

При липса на по-добро предложение, ще помоля системния администратор да ми позволи да преименувам този файл на нещо като "FileMakerProAdvanced.exe"; това трябва да работи. Ще получа това разрешение само процент от времето, което поискам. Ще ми трябва нещо друго, в случай че откажат молбата ми.

(Ястребовите очи сред вас ще забележат, че името на файла е дълго 26 знака. Изглежда, че списъкът със задачи има ограничение от 25 знака. Мога да заобиколя това (в командата find , например) чрез търсене на „FileMaker Pro Advanced.ex“; всичко е намиране и мога да използвам двойни кавички > команда.)

Благодаря предварително за решенията и съчувствието.


person BaldEagle    schedule 21.10.2015    source източник


Отговори (1)


Няма да имате проблем с интервалите във филтъра за име на изображение, така че няма нужда от заобиколно решение, просто премахнете вътрешните единични кавички

set "target=FileMaker Pro Advance.exe"
tasklist /fi "imagename eq %target%"

А проблемът с изходната дължина е само за колонния режим. Можете да промените на изходен формат csv

tasklist /fi "imagenane eq %target%" /nh /fo:csv | find /i "%target%" >nul

Или, тъй като не извличате никакви данни от изхода, вместо да скриете заглавките, тъй като те присъстват само ако е намерен съответстващ процес, проверете за наличието на заглавките

tasklist /fi "imagenane eq %target%" | find "========" >nul
person MC ND    schedule 21.10.2015
comment
Звезден отговор. Навреме (един час!) Добре формулирано. Даде ни нови неща, за които да мислим. Вашият съвет работи. Благодаря ти. Многократно. Дълбоко ценим времето, което отделихте, за да отговорите. [редактиране за правопис] - person BaldEagle; 23.10.2015