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

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

Madinka 31-05-2012 17:34 1925636

скопировать, разархивировать и удалить архив в VBS
 
@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 1925641

Madinka, опишите по-русски, что Вам надо (алгоритм действий).

Madinka 31-05-2012 18:30 1925648

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

Iska 31-05-2012 19:00 1925651

Цитата:

Цитата Madinka
В локальном диске с:\Temp сохранен архив(с расширение rar) »

Имя архива?

Цитата:

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

Смысл этого действия от меня ускользает.

Цитата:

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

Выше написана, не обессудьте, полная белиберда.

Madinka 31-05-2012 22:26 1925753

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

Iska 31-05-2012 22:52 1925768

Цитата:

Цитата Madinka
…нужно посчитать сколько раз скопировали,разархивировали,удалили архив. »

Каким образом? Буквально: как Вы себе сие представляете?

Madinka 31-05-2012 23:01 1925774

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

Madinka 01-06-2012 18:36 1926254

как разархивировать архив в vbs?

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

Iska 01-06-2012 19:46 1926273

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

Madinka 05-06-2012 18:50 1928679

что значит ошибка: разрешение отклонено код 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 1928958

Madinka, что говорит код:
Код:

WScript.Echo WScript.CreateObject("Scripting.FileSystemObject").FolderExists("C:\Documents and Settings\User\rabochii stol")
?

Madinka 21-06-2012 22:20 1938463

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 1938535

Цитата:

Цитата Madinka
1) почему распаковка архива выполняется на диск с:\ а не на рабочий стол? »

А почему Вы думаете, что извлечение содержимого архива должно — вдруг! — производиться на Рабочий стол? Вы не указываете путь для извлечения, Вы не меняете текущий каталог — чего же удивляться результату?

Цитата:

Цитата Madinka
2) сообщение в текстовый файл не выполняется, почему? »

Сообщение об ошибке:
Цитата:

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

Цитата:

Цитата Madinka
рабочий стол находится по этому пути: 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 1938775

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

Iska 22-06-2012 15:05 1938781

.Write/.WriteLine


Время: 19:26.

Время: 19:26.
© OSzone.net 2001-