Переместите avi-файлы на другой диск после создания с помощью командного файла - PullRequest
0 голосов
/ 08 декабря 2018

Из-за небольшого дискового пространства C:/ я часами искал и пробовал код, который будет обрабатывать и обрабатывать мои файлы X-Plane 11 avi.

  1. Xplane11создает файлы *.avi на моем диске C:/.Каждый *.avi файл имеет размер приблизительно 2 ГБ.
  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 голосов
/ 24 декабря 2018

Я справился с частичным пакетным решением своего вопроса, просмотрев предыдущие решения stackoverflow и помощь его кодировщиков (спасибо 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 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...