我想在Firefox打开时每10分钟复制一个文件。
我不确定最好的方法是什么,但到目前为止,我创建了一个.bat
,我希望链接到任务计划程序中的任务,每10分钟运行一次。
这是.bat
:
copy "C:\Users\Me\Zotero\zotero.sqlite" "C:\Users\Me\Zotero\Zotero_Backup_sqlite\zotero_%date%.sqlite"
但是,任务计划程序不允许我添加条件(=仅在firefox打开时运行),也不允许每10分钟运行一次任务。
所以这是我的问题:
答案 0 :(得分:1)
您可以拥有这样的批处理文件:
@echo off
:loop
tasklist /FI "IMAGENAME eq firefox.exe" 2>NUL | find /I /N "firefox.exe">NUL
if "%ERRORLEVEL%"=="0" copy "C:\Users\Me\Zotero\zotero.sqlite" "C:\Users\Me\Zotero\Zotero_Backup_sqlite\zotero_%date%.sqlite"
timeout /t 600 /nobreak
goto loop
这将是一个独立的批处理脚本,您必须自己启动,或放入启动文件夹。
您也可以选择
@echo off
tasklist /FI "IMAGENAME eq firefox.exe" 2>NUL | find /I /N "firefox.exe">NUL
if "%ERRORLEVEL%"=="0" copy "C:\Users\Me\Zotero\zotero.sqlite" "C:\Users\Me\Zotero\Zotero_Backup_sqlite\zotero_%date%.sqlite"
并且每隔10分钟从任务调度程序中运行一次。
你也可以将它变成你的firefox shorcut并在程序不再活动时结束它,如下所示:
@echo off
set programName=firefox.exe
start %programName%
:loop
tasklist /FI "IMAGENAME eq %programName%" 2>NUL | find /I /N "%programName%">NUL
if "%ERRORLEVEL%"=="0" copy "C:\Users\Me\Zotero\zotero.sqlite" "C:\Users\Me\Zotero\Zotero_Backup_sqlite\zotero_%date%.sqlite"
if "%ERRORLEVEL%"=="1" exit /b
timeout /t 600 /nobreak
goto loop