PDA

Показать полную графическую версию : [решено] скопировать, разархивировать и удалить архив в VBS


Madinka
31-05-2012, 17:34
@echo off
if exist C:\Temp\arhiv.rar (echo skopirovali arhiv iz diska C na rabochii stol) else (echo pri vipolnenii komandi voznikla oshibka.)
copy C:\Temp\arhiv.rar C:\"Documents and Settings"\User\"rabochii stol"\*.*
echo.
@echo off
if exist C:\Temp\arhiv.rar (echo razarhivirovali arhiv iz diska C na rabochii stol) else (echo pri vipolnenii komandi voznikla oshibka.)
unrar x -n C:\Temp\arhiv.rar 1.dat C:\"Documents and Settings"\User\"rabochii stol"
unrar x -n C:\Temp\arhiv.rar 1.exe C:\"Documents and Settings"\User\"rabochii stol"
unrar x -n C:\Temp\arhiv.rar 1.lnk C:\"Documents and Settings"\User\"rabochii stol"
echo.
@echo off
if exist C:\Temp\arhiv.rar (echo udalili arxiv iz diska C papki Temp) else (echo pri vipolnenii komandi voznikla oshibka.)
dell /f C:\Temp\arhiv.rar
echo.
@echo off
if exist C:\Temp\arhiv.rar (echo deistviya vipolnilis:) else (echo oshibka, deistviya ne vipolnilis.)
set /a k=0
for %%i in (arhiv.rar) do set /a k=k+1
echo %k% raz
pause


Помогите пожалуйста написать эту программу в VBS.

Iska
31-05-2012, 18:10
Madinka, опишите по-русски, что Вам надо (алгоритм действий).

Madinka
31-05-2012, 18:30
Задание такое:Написать командный файл.
1)В локальном диске с:\Temp сохранен архив(с расширение rar) с файлами(.exe, .dat, .lnk) .Нужно скопировать,разархивировать на рабочий стол,и удалить этот архив.Все действия записать в блок-файл.
2)Написать командный файл,который анализирует сколько раз выполнялись действия из 1 задания, если были ошибки,то сколько раз.
Выше я написала программу которая выпоняется в командной строке, теперь нужно эту же программу написать в VBS. Помогите пожауйста, я не знаю как в VBS писать.

Iska
31-05-2012, 19:00
В локальном диске с:\Temp сохранен архив(с расширение rar) »
Имя архива?

анализирует сколько раз выполнялись действия из 1 задания, если были ошибки,то сколько раз. »
Смысл этого действия от меня ускользает.

Выше я написала программу которая выпоняется в командной строке, »
Выше написана, не обессудьте, полная белиберда.

Madinka
31-05-2012, 22:26
Имя архива- arhiv.rar. В нем находятся файлы- 1.dat,1.exe,1.lnk. Во втором задании нужно посчитать сколько раз скопировали,разархивировали,удалили архив.

Iska
31-05-2012, 22:52
…нужно посчитать сколько раз скопировали,разархивировали,удалили архив. »
Каким образом? Буквально: как Вы себе сие представляете?

Madinka
31-05-2012, 23:01
set /a k=0
for %%i in (arhiv.rar) do set /a k=k+1
echo %k% raz
Я вот так написала,как это представяла. Задание такое дали, проанализировать сколько раз выполнились действия.

Madinka
01-06-2012, 18:36
как разархивировать архив в vbs?

архив называется arhiv.rar находится в диске C:\Temp\arhiv.rar, нужно разархивировать его на рабочий стол,вот путь рабочего стола- C:\Documents and Settings\User\rabochii stol

Iska
01-06-2012, 19:46
Например, использовать метод «.Run()» или «.Exec()» объекта «WScript.Shell» для запуска rar.exe/unrar.exe/WinRAR.exe с соответствующей командной строкой.

Madinka
05-06-2012, 18:50
что значит ошибка: разрешение отклонено код 800А0046 ?

Dim FSO
Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
If FSO.FileExists("C:Temp\arhiv.rar") Then
FSO.CopyFile "C:Temp\arhiv.rar" , "C:\Documents and Settings\User\rabochii stol" , True
WSCRIPT.echo "arhiv skopirovan na rabochii stol"
End If

вот код, пытаюсь скопировать архив на рабочий стол, пишут ошибка: разрешение отклонено, строка 4, символ 1. Что за ошибка эта?

Iska
06-06-2012, 00:11
Madinka, что говорит код:
WScript.Echo WScript.CreateObject("Scripting.FileSystemObject").FolderExists("C:\Documents and Settings\User\rabochii stol")
?

Madinka
21-06-2012, 22:20
Set WshShell = CreateObject("WScript.Shell")
Set WshExec = WshShell.Exec("cmd.exe /c rar.exe x C:\Temp\arhiv.rar")
SEt lf1 = WshShell.CreateTextFile("C:\log.txt", True)
lf.WriteLine ("arhiv razarhivirovan na rabochii stol")
в этом коде хочу разархивировать архив на рабочий стол и ввести строку ("arhiv razarhivirovan na rabochii stol") в log.txt.

1) почему распаковка архива выполняется на диск с:\ а не на рабочий стол?
2) сообщение в текстовый файл не выполняется, почему?

рабочий стол находится по этому пути: C:\Documents and Settings\User\rabochii stol\*.*

Iska
22-06-2012, 02:35
1) почему распаковка архива выполняется на диск с:\ а не на рабочий стол? »
А почему Вы думаете, что извлечение содержимого архива должно — вдруг! — производиться на Рабочий стол? Вы не указываете путь для извлечения, Вы не меняете текущий каталог — чего же удивляться результату?

2) сообщение в текстовый файл не выполняется, почему? »
Сообщение об ошибке:
Ошибка: Объект не поддерживает это свойство или метод: 'WshShell.CreateTextFile'
Вам ничего не говорит? Например, то, что пытаться использовать для создания текстового файла объект «WScript.Shell» (вместо потребного объекта «Scripting.FileSystemObject») — несколько странно.

рабочий стол находится по этому пути: C:\Documents and Settings\User\rabochii stol\*.* »
Рабочий стол находится по любому из:
WScript.Echo WScript.CreateObject("WScript.Shell").SpecialFolders("Desktop")
WScript.Echo WScript.CreateObject("Shell.Application").NameSpace("shell:Desktop").Self.Path

Madinka
22-06-2012, 14:52
Какой метод нужно использовать, чтобы вывести сообщение в текстовый файл для объекта «WScript.Shell» ?

Iska
22-06-2012, 15:05
.Write/.WriteLine (http://www.script-coding.com/WSH/FileSystemObject.html#7.3.7.)




© OSzone.net 2001-2012