|
как копировать файлы порционно (например, по три) через powershell
|
|||
---|---|---|---|
#18+
Всем привет. Стоит задача, переместить 20 файлов *.bak с одной машины на другую. Дело в том, что при перемещении есть ограничение, на объём передаваемых файлов (файл должен быть не больше 1000 мб, за один раз перемещения нельзя превышать объём в 3ГБ). Каждый мой *.bak весит ~900 мб. Задумка такая, чтобы написать powershell скрипт, который будет класть 3 файла *.back , дождётся, когда они переместятся, потом следующие три файла и т.д., пока не переместятся все 20. в powershell не силён, прошу помощи: Код: powershell 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
В общем, когда пытаюсь реализовать while, который смотрит не переместился ли какой файл, чтобы доложить ещё один,чтобы их было не меньше 3-х, ничего не происходит. Помогите с реализацией, а может и с подходом, если несложно Модератор: Тема перенесена из форума "Microsoft SQL Server". ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2021, 19:39 |
|
как копировать файлы порционно (например, по три) через powershell
|
|||
---|---|---|---|
#18+
Mikhail__174, сказка о тройке. осталось непонятным, почему нельзя последовательно скопировать по одному .bak файлу, имеющего размер 900mb, все 20 файлов? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2021, 23:17 |
|
как копировать файлы порционно (например, по три) через powershell
|
|||
---|---|---|---|
#18+
Код: powershell 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2021, 01:32 |
|
как копировать файлы порционно (например, по три) через powershell
|
|||
---|---|---|---|
#18+
Если это ежедневные полные бэкапы одних и тех же БД, то можно посмотреть в сторону rsync ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2021, 07:18 |
|
как копировать файлы порционно (например, по три) через powershell
|
|||
---|---|---|---|
#18+
vikkiv, спасибо за идею! А как можно сделать паузу, чтобы три файла положить, подождать пока они не скопируются, потом следующие три и т.д. Объясню: копирование происходит складыванием файлов в определённую папку, в которую если положишь больше, чем дозволено, то копирования не будет :-) Флагом окончания копирования будет то событие, что файлы из папки пропали, которые мы в эту папку положили. Сделал на Вашей основе такой код: Код: powershell 1. 2. 3. 4. 5. 6. 7. 8. 9.
И получается какая то фигня :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2021, 13:47 |
|
как копировать файлы порционно (например, по три) через powershell
|
|||
---|---|---|---|
#18+
Mikhail__174 копирование происходит складыванием файлов в определённую папку, в которую если положишь больше, чем дозволено, то копирования не будет :-) Флагом окончания копирования будет то событие, что файлы из папки пропали, которые мы в эту папку положили. Файлы удаляются по мере копирования, или все сразу по завершении копирования? А то тупо мониторим папку, и если там файлов меньше трёх - копируем в неё ещё один... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2021, 16:07 |
|
как копировать файлы порционно (например, по три) через powershell
|
|||
---|---|---|---|
#18+
Akina Файлы удаляются по мере копирования, или все сразу по завершении копирования? По мере копирования Akina А то тупо мониторим папку, и если там файлов меньше трёх - копируем в неё ещё один... Прошу прощения, но не получается реализовать такой "тупой" сценарий. Не могу сделать так, чтобы Powershell "отпустил" уже три скопированных файла, он их бесконечно обновляет. А если и удаётся их удалить (в промежутках между обновлениями) , то копируются те же самые файлы, которые я только что удалил ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2021, 16:18 |
|
как копировать файлы порционно (например, по три) через powershell
|
|||
---|---|---|---|
#18+
Код: powershell 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2021, 17:23 |
|
как копировать файлы порционно (например, по три) через powershell
|
|||
---|---|---|---|
#18+
fkthat, спасибо, Ваше решение красивое, с Вашего позволения выложу и своё )) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2021, 19:09 |
|
как копировать файлы порционно (например, по три) через powershell
|
|||
---|---|---|---|
#18+
В общем, алгоритм такой (за идею спасибо vikkiv ): Копируем по одному файлу, если файлов в папке больше чем 3, зацикливаем внутренний цикл, пока файлов не станет 2, затем докладываем ещё 1 и так до конца коллекции. Раньше я писал, что powershell блокирует файлы, а потом при удалении, начинает копировать те же файлы, которые были удалены - это вылечилось после отладки кода: я неправильно смотрел на количество файлов в папке: Код: powershell 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2021, 19:22 |
|
|
start [/forum/topic.php?fid=26&msg=40053877&tid=1492056]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
20ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
others: | 242ms |
total: | 351ms |
0 / 0 |