Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   отображение начала копирования (http://forum.oszone.net/showthread.php?t=198564)

stuntman77 04-02-2011 15:57 1604427

отображение начала копирования
 
прошу помощи,что то совсем не соображу)))
есть такой вот код :
Цитата:

@ECHO off
COLOR 1E
:loop
@echo ╔═════════════════════════════════════════════════╗
@echo ║ УСТАНОВИТЕ USB НОСИТЕЛЬ В РАЗЪЕМ НА КЛАВИАТУРЕ! ║
@echo ╚═════════════════════════════════════════════════╝
@QWERTY.vbs
@set /P flash=<"./l"
if exist /P flash=<"./l" (
xcopy "c:\2011" "%flash%:\2011\" /H /E /G /Q /R /Y || ping -n 4 localhost 1>nul && goto:loop
@echo ╔═════════════════════════════════════════════════════╗
@echo ║****" СКОПИРОВАНО УСПЕШНО! ║
@echo ║********** СКОПИРОВАНО УСПЕШНО! ║
@echo ║*************** СКОПИРОВАНО УСПЕШНО!║
@echo ║*************** СКОПИРОВАНО УСПЕШНО! ║
@echo ╚═════════════════════════════════════════════════════╝
@del "./l"
set Timer=5
ping -n %Timer% 127.0.0.1>nul
@echo ╔═════════════════════════════════════════════════╗
@echo ║ ИЗВЛЕКИТЕ USB НОСИТЕЛЬ ║
@echo ╚═════════════════════════════════════════════════╝
set Timer=15
ping -n %Timer% 127.0.0.1>nul
и с ним же QWERTY.vbs:

flash = ""
'Set fs = CreateObject("Scripting.FileSystemObject")
Set fso = CreateObject("Scripting.FileSystemObject")
Set Drives = FSO.Drives
For Each Drive In Drives
if ((Drive.DriveType = 1) and (Drive.DriveLetter <> "A") and (Drive.DriveLetter <> "B") and Drive.IsReady) then
flash = Drive.DriveLetter
exit for
end if
Next

'e:

Set f1 = fso.CreateTextFile("l", True)
f1.WriteLine flash
f1.Close

выполняет функцию копирования каталога,на усб носитель,у усб носителя определяет букву сам,при отсутствии флешки пишет циклично установите флешку.
как отобразить начало процесса копирования? желательно в процентах или прогресс баром.
если просто вставить строчку выше xcopy, echo "копирование..." то да это выход,но при условии если уже установлена флешка,если ее нет то циклично пишет установите флешку+копирование...
Спасибо!

stuntman77 05-02-2011 16:14 1605217

вопрос снимается,сделал как ниже,работает как и требовалось.

вот теперь мысль есть как это все компактно в один vbs\wsh соорудить?
а потом компилировать в один exe-ник.

PHP код:

@ECHO OFF
COLOR 1E
:loop
CLS  
@echo                    &#9556;═════════════════════════════════════════════════╗
@echo                    &#9553; УСТАНОВИТЕ USB НОСИТЕЛЬ В РАЗЪЕМ НА КЛАВИАТУРЕ!                   ║
@echo                    &#9562;═════════════════════════════════════════════════╝
@QWERTY.vbs
set 
/P flash=<"./l" || ping -n 4 localhost 1>nul && goto:loop
if exist /P flash=<"./l" 
@echo                    &
#9556;═════════════════════════════════════════════════╗
@echo                    &#9553;                 КОПИРОВАНИЕ...                                                                  ║
@echo                    &#9562;═════════════════════════════════════════════════╝
set datetemp=%date:~-10%
xcopy "c:\2011" "%flash%:\%datetemp%\" /H /E /G /q /R /Y || ping -n 4 localhost 1>nul && goto:loop
@echo                  ╔═════════════════════════════════════════════════════╗
@echo                  ║"
***************" СКОПИРОВАНО УСПЕШНО!           ║ 
@echo                  ║"
***************" СКОПИРОВАНО УСПЕШНО!      ║ 
@echo                  ║"
***************" СКОПИРОВАНО УСПЕШНО!║ 
@echo                  ║"
***************" СКОПИРОВАНО УСПЕШНО!                         ║
@echo                  ╚═════════════════════════════════════════════════════╝
@del "
./l"
set Timer=5
ping -n %Timer% 127.0.0.1>nul 
@echo                    ╔═════════════════════════════════════════════════╗
@echo                    ║             ИЗВЛЕКИТЕ USB НОСИТЕЛЬ              ║
@echo                    ╚═════════════════════════════════════════════════╝
set Timer=15
ping -n %Timer% 127.0.0.1>nul 

PHP код:

flash ""
'Set fs = CreateObject("Scripting.FileSystemObject") 
Set fso = CreateObject("Scripting.FileSystemObject")
Set Drives = FSO.Drives 
For Each Drive In Drives
    if ((Drive.DriveType = 1) and (Drive.DriveLetter <> "A") and (Drive.DriveLetter <> "B") and Drive.IsReady) then 
        flash =  Drive.DriveLetter
        exit for
    end if
Next

'
e:

Set f1 fso.CreateTextFile("l"True)
f1.WriteLine flash
f1
.Close 



Время: 07:44.

Время: 07:44.
© OSzone.net 2001-