使用批处理文件创建后,将avi文件移动到其他驱动器

时间:2018-12-08 19:10:06

标签: batch-file

由于C:/的驱动器空间很小,我花了数小时寻找并尝试通过X-Plane 11 avi文件处理和移动来管理以下内容的代码。

  1. Xplane11正在向我的*.avi驱动器创建C:/文件。每个*.avi文件的大小约为2 GB。
  2. Xplane11将继续创建*.avi文件,只要它继续记录飞行情况即可。

我需要一个可以执行以下操作的批处理文件:

  1. 检查*.avi上的C:/个文件及其状态。
  2. 在将其从C:/驱动器移至D:/之前,请将其完成。然后。移动它们。
  3. 继续此过程,直到模拟器录制完成并且不再创建*.avi个文件为止。

我尝试了许多与此类似的代码变体:

@echo off

:loop
if not exist "C:\X-Plane 11\Output\*.avi" goto :end

if exist ("C:\X-Plane 11\Output\*.avi") do (

If %Errorlevel% gtr 0 (
echo Avi file still being created please wait! 
) else (
echo Avi created and is now being moved!
goto :copy
)
)
:copy
start /w "" move "C:\X-Plane 11\Output\*.avi" "D:\X-Plane 11\Output\New Captures
loop

:end
echo Avi does not exist!
exit

我发现的问题是,它不会等到*.avi完成后才移动,并且优先选择而无需按下任何控制台键,因为创建文件时我并不总是坐在模拟器上。

1 个答案:

答案 0 :(得分:0)

我已经解决了我的问题的部分批处理解决方案,并研究了以前的stackoverflow解决方案并从其编码器(thx Mofi)获得了帮助。创建完成后,它将检查现有的.avi并将其移至另一个目录,并重复该过程,直到源位置不再存在.avi文件为止。我现在想在移动时更改其名称,因为任何新的.avi文件都将覆盖以前的文件。

到目前为止,这是我的新代码。

@echo off

:loop


if not exist "C:\X-Plane 11\Output\*.avi" (
echo No more Avi files to move! 
echo Will now Exit!
pause
goto :exit
)
) else (
if "!errorlevel!" GTR "0" (
echo
) else (
echo Please Wait.....
for %%F in (C:\X-Plane 11\Output\*.avi) do (
move "C:\X-Plane 11\Output\*.avi" "D:\X-Plane 11\Output\"
)   

PING localhost -n 10 >NUL   
goto :loop
)
)
)
)
:exit
exit