我搜索了2天。现在我在这里,希望能得到帮助。我正在尝试自动“杀死(关闭)”一个文件。例如:
@echo off taskkill /IM Acrord32.exe
那很好用。唯一的问题是,它会关闭每个 PDF 文件。但我只想关闭一个特定的文件。也许通过路径。
所以,我希望任何人都可以帮助我。(它不必是关闭此 PDF 文件的批处理脚本,也可以是工具或其他东西)但它必须自动关闭文件。
我希望你能理解我。我不是英国人。
感谢到目前为止。机器学习
我搜索了2天。现在我在这里,希望能得到帮助。我正在尝试自动“杀死(关闭)”一个文件。例如:
@echo off taskkill /IM Acrord32.exe
那很好用。唯一的问题是,它会关闭每个 PDF 文件。但我只想关闭一个特定的文件。也许通过路径。
所以,我希望任何人都可以帮助我。(它不必是关闭此 PDF 文件的批处理脚本,也可以是工具或其他东西)但它必须自动关闭文件。
我希望你能理解我。我不是英国人。
感谢到目前为止。机器学习
为此,您需要“告诉”Acrobat Reader 关闭文件。但是 AFAIK Acrobat Reader 没有公开任何远程控制 API。
我看到的唯一选择是将 Ctrl+F4 发送到 Reader,但从命令行是不可能的(至少使用标准命令)。
我不知道你的意思,但你要求一个脚本来自动关闭 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