0

2日間探しました。今、私はここにいて、助けを得たいと思っています。ファイルを自動的に「kill (close)」しようとしています。例えば:

@echo off taskkill /IM Acrord32.exe

それはうまくいきます。唯一の問題は、すべての PDF ファイルを閉じることです。しかし、特定のファイルだけを閉じたいです。パス経由かも。

だから、誰かが私を助けてくれることを願っています。(この PDF ファイルを閉じるバッチ スクリプトである必要はありません。ツールなどでもかまいません)。ただし、ファイルを自動的に閉じる必要があります。

あなたが私を理解してくれることを願っています。私は英語ではありません。

これまでありがとう。ML

4

2 に答える 2

0

そのためには、Acrobat Reader にファイルを閉じるように「指示」する必要があります。しかし、知る限り、Acrobat Reader はリモート コントロール用の API を公開していません。

私が見る唯一の選択肢は、Ctrl + F4をリーダーに送信することですが、コマンドラインからはできません(少なくとも標準コマンドでは)。

于 2013-07-26T12:41:36.227 に答える
0

私はあなたが何を意味するのか正確にはわかりませんが、Acrord32 プロセスを自動的に閉じるスクリプトを要求します。私のスクリプトはそうしますが、「中断」され、プロセッサに対する要求が多すぎるプロセスに対してのみです。

その後、レジストリ、パラメータ、または設定を変更する必要はありません。プロセス 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
于 2015-04-09T00:33:31.390 に答える