Войти

Показать полную графическую версию : отображение начала копирования


stuntman77
04-02-2011, 15:57
прошу помощи,что то совсем не соображу)))
есть такой вот код :
@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
вопрос снимается,сделал как ниже,работает как и требовалось.

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

@ECHO OFF
COLOR 1E
:loop
CLS
@echo ╔═════════════════════════════════════════════════╗
@echo ║ УСТАНОВИТЕ USB НОСИТЕЛЬ В РАЗЪЕМ НА КЛАВИАТУРЕ! ║
@echo ╚═════════════════════════════════════════════════╝
@QWERTY.vbs
set /P flash=<"./l" || ping -n 4 localhost 1>nul && goto:loop
if exist /P flash=<"./l" (
@echo ╔═════════════════════════════════════════════════╗
@echo ║ КОПИРОВАНИЕ... ║
@echo ╚═════════════════════════════════════════════════╝
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

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




© OSzone.net 2001-2012