Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Копирование файла каждые восемь часов

Ответить
Настройки темы
Любой язык - Копирование файла каждые восемь часов

Старожил


Сообщения: 239
Благодарности: 8

Профиль | Отправить PM | Цитировать


Здравствуйте
Возможно ли с помощью bat делать каждые 8 часов копию файла xlsx в папку? При этом удалять в папке файлы, созданные более месяца назад. Для удобства добавлять к имени файла время и дату.
Я так понимаю нужен bat и планировщик(для запуска bat каждые 8 часов) в Windows.
Или возможно такое только с помощью bat. т.е. скопировал bat на нужный комп, прописал имя копируемого файла и имя папки, в которую копировать. И все работало бы)

Отправлено: 07:16, 13-10-2022

 

Аватара для dmitryst

Ветеран


Сообщения: 7273
Благодарности: 907

Профиль | Отправить PM | Цитировать


v79italya, планировщик нужен, чтобы запускать ваш батник по расписанию. Сам батник должен содержать только функции копирования (robocopy, например) и поиска/удаления старых файлов. Пример копирования на сетевой диск
Код: Выделить весь код
@echo off
 
rem  USE FULL PATH TO NETWORK DRIVE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

net use x: \\192.168.1.2\windows pascword@ /user:backupuser
set "folder=\\192.168.1.2\windows\backup\SQL_back"
set "source=d:\backup_sql"
set "mask=*.*"

rem с датой и временем
rem robocopy "%source%" "%folder%\%date%\%time:~,2%.%time:~3,2%" "%mask%">nul
rem только дата, без времени
robocopy "%source%" "%folder%\%date%" "%mask%">nul

net use x: /delete

del /Q "d:\backup_SQL\*.*"

exit /b
У меня выполняется копирование в одну папку, добавляется дата (и время) и после завершения копирования на сетевой диск удаляются все файлы в папке. Вам надо будет воспользоваться функцией ForFiles /p “C:\path\to\folder” /s /d -30 /c “cmd /c del /q @file”. Замените 30 на нужное количество дней, более старые файлы будут удаляться.

-------
Осваиваю FreeBSD

Это сообщение посчитали полезным следующие участники:

Отправлено: 08:50, 13-10-2022 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Старожил


Сообщения: 239
Благодарности: 8

Профиль | Отправить PM | Цитировать


dmitryst, спасибо!
Попробую воспользоваться.
А нет варианта как выглядит код не с сетевым диском, а с папкой и файлом xlsx

Отправлено: 09:11, 13-10-2022 | #3


Аватара для dmitryst

Ветеран


Сообщения: 7273
Благодарности: 907

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
@echo off
 

set "dest=d:\kopiruem_suda"
set "source=d:\backup_sql"
set "mask=*.xlsx"

rem с датой и временем
robocopy "%source%" "%dest%\%date%-%time:~,2%.%time:~3,2%" "%mask%">nul

exit /b
Как-то так... Более знающие коллеги поправят, если не так
ПС. копируется в папку с датой и временем, как добавить к названию файла - не знаю, коллеги подскажут. Для одного-единственного файла можно написать как-то так
Код: Выделить весь код
echo f|XCOPY D:\BACKUP\base.xlsx E:\BACKUP\%Date:~6,4%.%Date:~3,2%.%Date:~0,2%_base.xlsx /Y

-------
Осваиваю FreeBSD


Отправлено: 10:04, 13-10-2022 | #4


Старожил


Сообщения: 239
Благодарности: 8

Профиль | Отправить PM | Цитировать


dmitryst, спасибо!
Также нашел сегодня прогу Cobian Backup . Установилась правда с ошибками. Гоняю пока

Отправлено: 12:46, 13-10-2022 | #5


Ветеран


Contributor


Сообщения: 2728
Благодарности: 1697

Профиль | Отправить PM | Цитировать


v79italya,
Код: Выделить весь код
@Echo Off
>nul Chcp 1251
	Set "FileIn=Z:\Soft_In\делать каждые 8 часов копию файла.xlsx" 
	Set /A Narc=90

	Set "BoxOut=Z:\Soft_Arc"
rem	Set "BoxOut=\\ServerName\Test2"
rem	Set "BoxOut=\\192.168.100.23\Test1"

	If Not Exist "%FileIn%" (Echo File "%FileIn%" not found &Pause &Exit /B 2)
	FOR /F "tokens=2 delims==." %%d in ('WMIC OS GET LOCALDATETIME /VALUE') DO SET "@Tdate=%%d" &Call Set "@Tdate=%%@TDate:~0,12%%"
	For %%f In ("%FileIn%")	Do Set "Ext=%%~xf" &>nul Copy %%f "%BoxOut%\%@Tdate% %%~nxf" 

	FOR /F "usebackq Skip=%Narc% delims=" %%f IN (`2^>nul Dir "%BoxOut%\20?????????? *%Ext%" /A:-D /B /O:-N`) DO Del "%BoxOut%\%%f"
Exit /B
При наличии кириллицы в путях сохранить скрипт в кодировке 1251
Укажите свой путь к исходному файлу. Он может быть сетевым.
Укажите свою папку, куда складываете копии. Она тоже может быть сетевой. Для примера оставил закомментированные строки.
Я не хочу в CMD возиться с датами - возможно, но громоздко.
Поэтому, если Вы делаеие копии каждые 8 час=3 копии в сутки = 90 копии в месяц, то я предлагаю сохранять последние 90 копии. Вы можете указать иное число.
Естественно, Вы будете осчастливлены, если этот скрипт будет выполняться планировщиком.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 13-10-2022 в 15:37.

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:19, 13-10-2022 | #6


Старожил


Сообщения: 239
Благодарности: 8

Профиль | Отправить PM | Цитировать


megaloman, спасибо! Сохраняет файл при клике. Осталось Планировщик настроить

Отправлено: 08:32, 14-10-2022 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Копирование файла каждые восемь часов

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - [решено] Копирование с проверкой на наличие файла и последующее его копирование. tubxtru Программирование и базы данных 4 27-10-2020 05:53
CMD/BAT - [решено] Копирование новых файлов каждые 30 минут. POSTREALITY Скриптовые языки администрирования Windows 20 23-11-2016 13:39
За первые восемь часов приложение BBM на Android и iOS скачано 5 млн. раз OSZone News Новости информационных технологий 0 23-10-2013 03:30
[решено] Компьютер виснет через каждые 2-3-4-5 часов... serj88rus Непонятные проблемы с Железом 22 28-08-2010 21:38
[решено] отключение от сети каждые 4-5 часов kivov Microsoft Windows NT/2000/2003 8 14-10-2009 05:58




 
Переход