如何使用批处理文件停止 aws 同步过程?

How to stop aws sync process using batch file?

我正在将 aws s3 数据备份写入批处理文件中,如下所示

test.bat

@echo off

echo ---------Data synchronization START at %date% %time%------------  

:loop
    aws s3 sync D:\backup s3://upload --exclude "*.jpg"


IF %ERRORLEVEL% NEQ 0 GOTO :loop
echo ---------Data synchronization END at %date% %time%------------  

这个批处理文件 运行 使用 run.bat 如下所示的文件

run.bat

@echo off
start  test.bat
timeout /t 10
taskkill /fi "imagename eq aws.exe" /f
taskkill /fi  test.bat /f

我想停止 aws sync 并在 10 秒后关闭 test.bat window 运行 test.bat 文件 我尝试使用 taskkill /fi "imagename eq aws.exe" /f 停止 aws 同步过程 并使用 taskkill /fi test.bat /f

关闭 test.bat window

但我无法停止 aws 同步进程并关闭 test.bat window

将标题添加到 test.bat,然后使用 windowtitle

的过滤器进行 taskill
@echo off
setlocal
title test.bat
echo ---------Data synchronization START at %date% %time%------------  
for /L %%i in (1,1,1000)
aws s3 sync D:\backup s3://upload --exclude "*.jpg"
IF %ERRORLEVEL% NEQ 0 GOTO :loop
echo ---------Data synchronization END at %date% %time%------------  
exit /b 0

run.bat

@echo off
start "" test.bat
timeout /t 10 >nul
taskkill /f /im cmd.exe /fi "windowtitle eq test.bat"
taskkill /f /im aws.exe /fi "imagename eq aws.exe"

您也可以在 timeout 之后添加一个 stop.tmp 并检查文件是否存在,然后 exit /b 0

@echo off
setlocal
title test.bat
echo ---------Data synchronization START at %date% %time%------------  
for /L %%i in (1,1,1000)
aws s3 sync D:\backup s3://upload --exclude "*.jpg"

IF EXIST stop.tmp del stop.tmp &exit /b 0
IF %ERRORLEVEL% NEQ 0 GOTO :loop
echo ---------Data synchronization END at %date% %time%------------  
exit /b 0

run.bat 与 stop.tmp

@echo off
start "" test.bat
timeout /t 10 >nul
copy nul stop.tmp