Skip to content

Commit

Permalink
Merge pull request #31 from GladilovDmitry/patch-2
Browse files Browse the repository at this point in the history
  • Loading branch information
arkuznetsov authored Jul 17, 2021
2 parents 9c9a989 + e49c7f8 commit 049bde5
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 4 deletions.
7 changes: 6 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -269,11 +269,16 @@ cpdb umapdrive -map-drive N
| **-dst** | - Файл/каталог приемник (если оканчивается на "\", то каталог) |
| **-replace** | - Перезаписывать существующие файлы |
| **-delsrc** | - Выполнить перемещение файлов (удалить источник после копирования) |
| **-lastonly** | - Копирование файлов, измененных не ранее текущей даты |

#### Пример:
#### Простой пример. Копирование файла в каталог:
```bat
cpdb copy -src "d:\MSSQL\Backup\MyDatabase_copy.bak" -dst "N:\NewDestination\" -replace -delsrc
```
#### Сложный пример. В каталоге-источнике имеется несколько резервных копий с датой в имени файла. Необходимо скопировать только свежий файл (созданный сегодня). Новое имя файла не должно содержать дату:
```bat
cpdb copy -src "d:\MSSQL\Backup\MyDatabase_copy*.bak" -dst "N:\NewDestination\MyDatabase_copy.bak*" -replace -delsrc -lastonly
```


## split - Архивировать файл с разбиением на части указанного размера
Expand Down
17 changes: 14 additions & 3 deletions src/Классы/КомандаКопироватьФайл.os
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,10 @@
Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды,
"-delsrc",
"Выполнить перемещение файлов (удалить источник после копирования)");

Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды,
"-lastonly",
"Копирование файлов, измененных не ранее текущей даты (параметр /D для xcopy)");

Парсер.ДобавитьКоманду(ОписаниеКоманды);

Expand All @@ -56,6 +60,7 @@
Приемник = ПараметрыКоманды["-dst"];
Перезаписывать = ПараметрыКоманды["-replace"];
УдалитьИсточник = ПараметрыКоманды["-delsrc"];
ТолькоСегодня = ПараметрыКоманды["-lastonly"];

ВозможныйРезультат = МенеджерКомандПриложения.РезультатыКоманд();

Expand All @@ -72,7 +77,7 @@
Попытка
ОписаниеРезультата = "";

Результат = КомандаКопироватьФайл(Источник, Приемник, Перезаписывать, УдалитьИсточник, ОписаниеРезультата);
Результат = КомандаКопироватьФайл(Источник, Приемник, Перезаписывать, УдалитьИсточник, ОписаниеРезультата, ТолькоСегодня);

Если Не ПустаяСтрока(ОписаниеРезультата) Тогда
Лог.Информация("Вывод команды: " + ОписаниеРезультата);
Expand Down Expand Up @@ -106,7 +111,8 @@
, Приемник
, Перезаписывать = Истина
, УдалитьИсточник = Ложь
, ОписаниеРезультата = "")
, ОписаниеРезультата = ""
, ТолькоСегодня = Ложь)

КомандаРК = Новый Команда;

Expand All @@ -119,6 +125,11 @@
КомандаРК.ДобавитьПараметр("/Z");
КомандаРК.ДобавитьПараметр("/V");
КомандаРК.ДобавитьПараметр("/J");
Если ТолькоСегодня Тогда
лТекДата = ТекущаяДата();
лФорматированнаяДата = Строка(Формат(лТекДата, "ДФ=MM-dd-yyyy"));
КомандаРК.ДобавитьПараметр("/D:" + лФорматированнаяДата);
КонецЕсли;

КомандаРК.УстановитьИсполнениеЧерезКомандыСистемы(Ложь);
КомандаРК.ПоказыватьВыводНемедленно(Ложь);
Expand Down Expand Up @@ -164,4 +175,4 @@

КонецФункции // КомандаУдалитьФайл()

Лог = Логирование.ПолучитьЛог("ktb.app.cpdb");
Лог = Логирование.ПолучитьЛог("ktb.app.cpdb");

0 comments on commit 049bde5

Please sign in to comment.