Переміщення папок за допомогою vbs

В черговий раз порадів наявності підтримки VBS в Хрюша.

Буквально недавно встала, з одного боку, тривіальна задача - перемістити близько 100 папок з одного місця в інше, але не всі відразу, а по одній, максимум дві з інтервалами 7-10 хвилин. До чого такі складнощі? Справа в тому, що цільова папка моніториться самопісний софтиной, яка при появі нових папок смикає ftp.exe з необхідними ключами і, відповідно, заливає файло на якийсь ftp-сервер. Природно одноразова переміщення всіх папок спричинить за собою легкий колапс 🙂 тим паче, що більше 2-3 потоків на аплод сервер не потягне.

На дворі 3 годині ночі, після того, як вручну переніс сім папок терпець увірвався і був написаний маленький скрипт, кілька рядків на vbs, який в циклі підхоплював імена папок, переміщував їх в цільову папку, а потім засипав на 10 хвилин. На ранок перевірив логи сервера. Настала благодать.

Set objFSO = CreateObject ( «Scripting.FileSystemObject»)
Set objFolder = objFSO.GetFolder ( «source_folder_path»)
Set colSubfolders = objFolder.Subfolders
For Each objSubfolder in colSubfolders
objFSO.MoveFolder «source_folder_path» + objSubfolder.Name. «Target_folder_path»
Wscript.Sleep (600000)
Next

Ясна річ, що завдання це разова і навряд чи подібне повториться в доступному для огляду майбутньому, але завжди простіше витратити кілька хвилин часу для швидкого і витонченого вирішення проблеми, ніж сидіти цілодобово і переміщати файло або шукати программуліна, яка підтримує таку дивну фичу.

Та й взагалі VBS неабияк полегшує життя в ряді випадків.

Поділитися

Схожі статті