2013-07-26 3 views
0

Я искал 2 дня. Теперь я здесь и надеюсь получить помощь. Я пытаюсь «убить (закрыть)» файл автоматически. Например:Пакетный файл ... Закрыть openfiles

@echo от Taskkill/IM AcroRd32.exe

Thats работает отлично. Единственная проблема заключается в том, что он закрывает каждый PDF-файл. Но я хочу только закрыть конкретный файл. Возможно через путь.

Итак, я надеюсь, что кто-нибудь может мне помочь. (Это не должно быть Batch Script, который закрывает этот PDF-файл, также может быть инструментом или чем-то еще). Но он должен закрыть файл AUTOMATICALLY.

Надеюсь, вы меня поняли. Я не англичанин.

Спасибо. М.Л.

+0

Вы хотите закрыть определенный PDF с заданным именем, когда он открыт? Можете ли вы объяснить эту задачу дальше? – foxidrive

ответ

0

Для этого вам необходимо «сообщить» Acrobat Reader, чтобы закрыть файл. Но AFAIK Acrobat Reader не предоставляет API для дистанционного управления.

Только выбор, который я вижу, - это отправить Ctrl + F4 в Reader, но из командной строки невозможно (по крайней мере, со стандартными командами).

0

Я не знаю, что вы имеете в виду, но вы запрашиваете скрипт, который закрывает процесс Acrord32, и он автоматически. Мой скрипт работает, но только для процессов, которые были «приостановлены» и слишком требовательны к процессору.

Нет необходимости в каких-либо изменениях реестра, параметрах или настройках Acrobat Reader. Пакетный скрипт, подготовленный по умолчанию для автоматического уничтожения процесса Acrord32.exe, и с этой целью был разработан, но сценарий можно использовать для закрытия, как и любой другой процесс, слишком обременительный, который был приостановлен, когда скрипт вызывает соответствующий параметр. Если этот параметр содержит длинное имя с пробелом, вы должны заключить этот параметр в кавычки. Например, в сценарии можно определить несколько параметров. Время приостановки, время повторной проверки или где должен быть создан отчет (LOG). Скрипт закрывает все процессы, отвечающие критериям для любого пользователя, конечно, не систему, которая не может быть закрыта. Может быть полезен на сервере, работа многих пользователей. Сценарий оптимизирован, чтобы свести к минимуму сам обремененный процессор.

Спасибо

@echo off 
REM Automatic closing Acrobat Reader or other process parameter specified in the call, which too much high the CPU 
REM Preparing: Artur Zgadzaj 
REM --------------------------------------------------------------------------------------------- 

SET REPEAT_TIME_VERIFICATION_[seconds]=7 
SET IDLE_TIME_[seconds]=5 

SET LOG_FOLDER=C:\UTIL\LOG 



REM # # # #  CHECKING OR IS STARTED AS ADMINISTRATOR  # # # # # 

FSUTIL | findstr /I "volume" > nul&if not errorlevel 1 goto Administrator_OK 

cls 
echo ************************************ 
echo *** RUN AS ADMINISTRATOR *** 
echo ************************************ 
echo. 
echo. 
echo Call up just as the Administrator. Abbreviation can be done to the script and set: 
echo. 
echo  Shortcut ^> Advanced ^> Run as Administrator 
echo. 
echo. 
echo Alternatively, a single run "Run as Administrator" 
echo or in the Schedule tasks with highest privileges 
pause > nul 
goto:eof 
:Administrator_OK 

SET WD=day 
if "%~1"=="" (SET Close_Process=AcroRd32.exe) else (SET "Close_Process=%~1") 
MD %LOG_FOLDER% 2>NUL 
Setlocal EnableDelayedExpansion 

:again 
cls 
echo Automatic closing %Close_Process%, which are charged to the processor too ...&echo.&echo. 

FOR /F "tokens=2,7,8 delims=," %%A IN ('%SystemRoot%\System32\tasklist.exe /v /FO CSV^|find /I ^"%Close_Process%^"') DO (

    SET PROC=%%C 
    SET PROC=!PROC:"=! 

    FOR /F "tokens=2,3 delims=:" %%s IN ("!PROC!") DO (SET PR=%%t 
     if "!PR:~0,1!"=="0" (SET /A PROC_TIME=%%s*60+!PR:~1,1!) else (SET /A PROC_TIME=%%s*60+!PR:~0,2!)) 

    if !PROC_TIME! GTR %IDLE_TIME_[seconds]% (
     SET PID=%%A 
     SET PID=!PID:"=! 

     %SystemRoot%\system32\taskkill.exe /PID !PID! /F 

     SET B=%%B 
     SET B=!B:%USERDOMAIN%\=! 
     SET B=!B:%COMPUTERNAME%\=! 
     SET Process_User=!B:"=! 

     if not "!DATE_WD!"=="%DATE%" ((FOR /F "tokens=1" %%W IN ('POWERSHELL GET-DATE -format dddd') DO SET WD=%%W)&&SET DATE_WD=%DATE%) 
     echo %TIME:~0,8% ^(Hanging: !PROC:~-5!^)   !Process_User! >>"%LOG_FOLDER%\%DATE:-=.% ^(!WD:~0,3!^) Close_%Close_Process%.TXT" 
    ) 
) 

TIMEOUT /T %REPEAT_TIME_VERIFICATION_[seconds]% > nul 
goto again 

 Смежные вопросы

  • Нет связанных вопросов^_^