Показать полную графическую версию : [решено] Скрипт для удаления последнего скопированный файл
День добрый, Привет Всем,
Я тут первый раз у вас.
У меня вопрос следующий:
Я не силен в написаний скрипта, но нужно написать скрипт для удаления последний скопированный файл.
Пример: на сервере 1 есть файлы с расширением .ARC (примерно штук 30) их нужно копировать каждый 15 минут на сервер 2. Но последний скопированный файл (30-ый) нужно удалить с сервера 2. А через 15 минут на сервере прирастает файлы (30+15) эти файлы нужно копировать, предварительно проверяя на наличие на сервере 2.
Кто в чем силен, можете протянуть руку помощи?!
(примерно штук 30) »
(30-ый) »
Определитесь с количеством.
Но последний скопированный файл (30-ый) нужно удалить с сервера 2. »
Зачем удалять, если можно просто не копировать?
По какому принципу выстраивается очерёдность файлов?
А через 15 минут на сервере прирастает файлы (30+15) эти файлы нужно копировать, предварительно проверяя на наличие на сервере 2. »
Аналогичные вопросы:
По какому принципу выстраивается очерёдность файлов?
Определитесь с количеством.
P.S. Задача изложена очень сумбурно.
//не знаю как именно написать для Iska
Определитесь с количеством. »
Это лог файлы Базы Данных. они создаются когда пройсходят транзакций и.т.д.
Зачем удалять, если можно просто не копировать? »
Хотя можно и не копировать, классная идея!
По какому принципу выстраивается очерёдность файлов? »
Имена файлов следующим образом создаются:
ML_0000040534_0001_0845237174.ARC
ML_0000040535_0001_0845237174.ARC
ML_0000040536_0001_0845237174.ARC
Куда затем деваются файлы «*.arc» с сервера 1 и сервера 2? Ведь их число не может расти бесконечно, полагаю.
@echo off
setlocal enableextensions enabledelayedexpansion
set sSourceFolder=E:\Песочница\0418\Source
set sDestFolder=E:\Песочница\0418\Destination
set bFound=
if exist "%sSourceFolder%\." (
if exist "%sDestFolder%\." (
pushd "%sSourceFolder%"
for /f "usebackq delims=" %%i in (
`2^>nul dir /b /o:-n "*.arc"`
) do if defined bFound (
if not exist "%sDestFolder%\%%~i" (
>nul copy "%sSourceFolder%\%%~i" "%sDestFolder%\%%~i"
)
) else (
set bFound=True
)
popd
) else (
echo Can't find destination folder [%sDestFolder%].
exit /b 2
)
) else (
echo Can't find source folder [%sSourceFolder%].
exit /b 1
)
endlocal
exit /b 0
Куда затем деваются файлы «*.arc» с сервера 1 и сервера 2? Ведь их число не может расти бесконечно, полагаю. »
Да верно подмечено, эти файлы нужны для восстановления на момент времени.
Они на сервере 1 удаляются ежедневно, а на сервере 2 пока никак не удаляются.
((Можно и в скрипт прописать. Если больше 1-го дня удалять) то есть 8 числа удалить за 7 число))
Они на сервере 1 удаляются ежедневно, а на сервере 2 пока никак не удаляются. »
Что ж, тогда вышеприведённый код должен работать.
Что ж, тогда вышеприведённый код должен работать. »
Он хорошо отработал, только вот старые он не удалил на сервре 2
только вот старые он не удалил на сервре 2 »
И не должен был. Об этом речи не велось.
И не должен был. Об этом речи не велось. »
Все верно,
А можно ли это сделать? и куда нужно прописать delete )?
Да он не копирует последний файл. Круто, спасибо!
А можно ли это сделать? и куда нужно прописать delete )? »
Опишите подробно что именно, когда именно и откуда именно потребно удалять.
Опишите подробно что именно, когда именно и откуда именно потребно удалять. »
Нужно удалять файлы старше 1-го дня (24 часа), с сервера 2.
старше 1-го дня »
Ориентируемся по дате создания или по дате последней модификации?
Ориентируемся по дате создания или по дате последней модификации? »
По дате последней модификации исходя от текущей даты.
Iska,
По дате последней модификации исходя от текущей даты. »
Можно такое сделать?
Iska,
Где можно использовать, этот скрипт который вы написали -c"%comspec% /c echo @PATH\@FILE" в моем скрипте.
http://forum.oszone.net/thread-203988.html <тут я не понял как указать путь до файлов.
Где можно использовать, »
Отдельным пакетным файлом, расположенном и исполняемом на сервере 2 с потребной периодичностью.
тут я не понял как указать путь до файлов. »
forfiles - Поиск в Google (https://www.google.com/search?q=forfiles&ie=utf-8&oe=utf-8).
Iska,
День добрый, ISKA
Вопрос по дополнению к скрипту. Можно не копировать файлы больше 2-х дней? (в скрипте что где поменять?) а то туда сюда катать не кайф =)
Заранее благодарен!
@echo off
setlocal enableextensions enabledelayedexpansion
set sSourceFolder=E:\Песочница\0418\Source
set sDestFolder=E:\Песочница\0418\Destination
set bFound=
if exist "%sSourceFolder%\." (
if exist "%sDestFolder%\." (
pushd "%sSourceFolder%"
for /f "usebackq delims=" %%i in (
`2^>nul dir /b /o:-n "*.arc"`
) do if defined bFound (
if not exist "%sDestFolder%\%%~i" (
>nul copy "%sSourceFolder%\%%~i" "%sDestFolder%\%%~i"
)
) else (
set bFound=True
)
popd
) else (
echo Can't find destination folder [%sDestFolder%].
exit /b 2
)
) else (
echo Can't find source folder [%sSourceFolder%].
exit /b 1
)
endlocal
exit /b 0 »
я пробовал менять код, ни к чему оно меня не привело =(
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.