由于C:/
的驱动器空间很小,我花了数小时寻找并尝试通过X-Plane 11
avi
文件处理和移动来管理以下内容的代码。
Xplane11
正在向我的*.avi
驱动器创建C:/
文件。每个*.avi
文件的大小约为2 GB。Xplane11
将继续创建*.avi
文件,只要它继续记录飞行情况即可。我需要一个可以执行以下操作的批处理文件:
*.avi
上的C:/
个文件及其状态。C:/
驱动器移至D:/
之前,请将其完成。然后。移动它们。*.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
完成后才移动,并且优先选择而无需按下任何控制台键,因为创建文件时我并不总是坐在模拟器上。
答案 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