Pazzi писал(а):1. цикл приблизительно такой:
Код: Выделить всё
do
{
nextFile=FilesList.Readline();
var fFile=fso.GetFile(nextFile;
fFile.Copy(path,false);
WScript.Sleep(200);
}
while(!FilesList.atEndOfStream)
Нету никакого смысла в создании объекта
File если нужно только скопировать файл. FSO имеет для этого специальный метод:
Код: Выделить всё
{
nextFile=FilesList.Readline();
fso.CopyFile (nextFile, path, false);
WScript.Sleep(200);
}
Насчет задержки могу только предположить (IMHO), что системе нужно некоторое время, чтобы посливать файловые буфера на диск.
Pazzi писал(а):2. в идеале конеш чтоб показывалось и для каждого файла, какая его часть уже скопировалась) может можно как-то копировать вызовом виндосной апи-функции с сопутствующим открытием стандартного окна копирования?
В принципе стандартный шелловский диалог копирования можно вызывать, просто вызывая шелловскую функцию копирования. Для этого даже существует специальный объект:
Код: Выделить всё
var oShell = WScript.CreateObject("Shell.Application");
готового примера использования не дам, я как-то не пользовался сам. Так что примеры поищи в сети.
Вот, например. Только что нашел Гуглом:
http://www.script-coding.info/WSH/Shell.html
Пример взят именно оттуда (правда тут VB синтаксис, но думаю разберешься):
Код: Выделить всё
Set objShellApp = CreateObject("Shell.Application")
Set objFolder = objShellApp.NameSpace("C:\WINDOWS")
objFolder.CopyHere("C:\AUTOEXEC.BAT")
Pazzi писал(а):3. тоесть модальным окно никак не сделать?
Из скрипта? Это врядли. Скриптовые возножности в этом плане очень сильно ограничены. Это же фактически набор команд, при чем тут визуальный интерфейс? Ну мессадж бокс можно показать, ну окошко ввода строки, и это практически все. Хочешь GUI из скрипта - добавляй внешние визуальные объекты. Хотя, имхо, тут уж будет естественнее переходить на какой-то из языков программирования, позволяющий создавать графический интерфейс.
Pazzi писал(а):а фокус почему может терятся?
А хз, видимо какое-то приложение затребовало его. У тебя же много чего одновременно работает. Кстати, я попробовал у себя запустить подобный скрипт и у меня такой потери фокуса после показа мессаги не происходит...