Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Скрипт для удаления последнего скопированный файл (http://forum.oszone.net/showthread.php?t=293638)

AZABAZA 08-01-2015 05:45 2453251

Скрипт для удаления последнего скопированный файл
 
День добрый, Привет Всем,
Я тут первый раз у вас.
У меня вопрос следующий:
Я не силен в написаний скрипта, но нужно написать скрипт для удаления последний скопированный файл.
Пример: на сервере 1 есть файлы с расширением .ARC (примерно штук 30) их нужно копировать каждый 15 минут на сервер 2. Но последний скопированный файл (30-ый) нужно удалить с сервера 2. А через 15 минут на сервере прирастает файлы (30+15) эти файлы нужно копировать, предварительно проверяя на наличие на сервере 2.
Кто в чем силен, можете протянуть руку помощи?!

Iska 08-01-2015 05:56 2453252

Цитата:

Цитата AZABAZA
(примерно штук 30) »

Цитата:

Цитата AZABAZA
(30-ый) »

Определитесь с количеством.

Цитата:

Цитата AZABAZA
Но последний скопированный файл (30-ый) нужно удалить с сервера 2. »

  1. Зачем удалять, если можно просто не копировать?
  2. По какому принципу выстраивается очерёдность файлов?
Цитата:

Цитата AZABAZA
А через 15 минут на сервере прирастает файлы (30+15) эти файлы нужно копировать, предварительно проверяя на наличие на сервере 2. »

Аналогичные вопросы:
  1. По какому принципу выстраивается очерёдность файлов?
  2. Определитесь с количеством.

P.S. Задача изложена очень сумбурно.

AZABAZA 08-01-2015 06:03 2453255

//не знаю как именно написать для Iska

Цитата:

Цитата Iska
Определитесь с количеством. »

Это лог файлы Базы Данных. они создаются когда пройсходят транзакций и.т.д.

Цитата:

Цитата Iska
Зачем удалять, если можно просто не копировать? »

Хотя можно и не копировать, классная идея!

Цитата:

Цитата Iska
По какому принципу выстраивается очерёдность файлов? »

Имена файлов следующим образом создаются:
ML_0000040534_0001_0845237174.ARC
ML_0000040535_0001_0845237174.ARC
ML_0000040536_0001_0845237174.ARC

Iska 08-01-2015 06:59 2453258

Куда затем деваются файлы «*.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


AZABAZA 08-01-2015 07:16 2453259

Цитата:

Цитата Iska
Куда затем деваются файлы «*.arc» с сервера 1 и сервера 2? Ведь их число не может расти бесконечно, полагаю. »

Да верно подмечено, эти файлы нужны для восстановления на момент времени.
Они на сервере 1 удаляются ежедневно, а на сервере 2 пока никак не удаляются.

((Можно и в скрипт прописать. Если больше 1-го дня удалять) то есть 8 числа удалить за 7 число))

Iska 08-01-2015 07:33 2453265

Цитата:

Цитата AZABAZA
Они на сервере 1 удаляются ежедневно, а на сервере 2 пока никак не удаляются. »

Что ж, тогда вышеприведённый код должен работать.

AZABAZA 08-01-2015 07:38 2453267

Цитата:

Цитата Iska
Что ж, тогда вышеприведённый код должен работать. »

Он хорошо отработал, только вот старые он не удалил на сервре 2

Iska 08-01-2015 08:12 2453270

Цитата:

Цитата AZABAZA
только вот старые он не удалил на сервре 2 »

И не должен был. Об этом речи не велось.

AZABAZA 08-01-2015 08:26 2453271

Цитата:

Цитата Iska
И не должен был. Об этом речи не велось. »

Все верно,
А можно ли это сделать? и куда нужно прописать delete )?
Да он не копирует последний файл. Круто, спасибо!

Iska 08-01-2015 08:47 2453276

Цитата:

Цитата AZABAZA
А можно ли это сделать? и куда нужно прописать delete )? »

Опишите подробно что именно, когда именно и откуда именно потребно удалять.

AZABAZA 08-01-2015 08:56 2453280

Цитата:

Цитата Iska
Опишите подробно что именно, когда именно и откуда именно потребно удалять. »

Нужно удалять файлы старше 1-го дня (24 часа), с сервера 2.

Iska 08-01-2015 08:57 2453281

Цитата:

Цитата AZABAZA
старше 1-го дня »

Ориентируемся по дате создания или по дате последней модификации?

AZABAZA 08-01-2015 09:07 2453284

Цитата:

Цитата Iska
Ориентируемся по дате создания или по дате последней модификации? »

По дате последней модификации исходя от текущей даты.

AZABAZA 08-01-2015 11:05 2453307

Iska,
Цитата:

Цитата AZABAZA
По дате последней модификации исходя от текущей даты. »

Можно такое сделать?

AZABAZA 08-01-2015 11:52 2453323

Iska,

Где можно использовать, этот скрипт который вы написали -c"%comspec% /c echo @PATH\@FILE" в моем скрипте.

http://forum.oszone.net/thread-203988.html <тут я не понял как указать путь до файлов.

Iska 08-01-2015 11:59 2453326

Цитата:

Цитата AZABAZA
Где можно использовать, »

Отдельным пакетным файлом, расположенном и исполняемом на сервере 2 с потребной периодичностью.

Цитата:

Цитата AZABAZA
тут я не понял как указать путь до файлов. »

forfiles - Поиск в Google.

AZABAZA 12-03-2015 11:31 2481675

Iska,

День добрый, ISKA

Вопрос по дополнению к скрипту. Можно не копировать файлы больше 2-х дней? (в скрипте что где поменять?) а то туда сюда катать не кайф =)

Заранее благодарен!

AZABAZA 12-03-2015 12:44 2481705

Цитата:

Цитата Iska
@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 »

я пробовал менять код, ни к чему оно меня не привело =(


Время: 21:10.

Время: 21:10.
© OSzone.net 2001-