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

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

O L E G 14-05-2012 17:37 1915816

Установка\Снятие аттрибутов c помощью vbs
 
как снять аттрибут (чтение) с файла, ПРИМЕР на диске C:\qwerty.txt

Iska 15-05-2012 01:46 1916077

Цитата:

Цитата O L E G
как снять аттрибут (чтение) с файла, »

Атрибута «чтение» не существует в природе. Есть атрибут «ReadOnly», в просторечии именуемый атрибутом «Только для чтения»: File Attribute Constants.

Для чтения/установки атрибутов в WSH используется свойство «.Attributes» (Attributes Property):
Код:

Option Explicit

Const ReadOnly = &H01

Dim objFSO
Dim objFile


Set objFSO  = WScript.CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.GetFile("C:\qwerty.txt")

' Очистить атрибут «ReadOnly»
objFile.Attributes = objFile.Attributes And Not ReadOnly

' Установить атрибут «ReadOnly»
'objFile.Attributes = objFile.Attributes Or ReadOnly

Set objFile = Nothing
Set objFSO  = Nothing

WScript.Quit 0


O L E G 15-05-2012 17:33 1916446

Iska, подскажи как Указать сразу не сколько файлов, с которых мне нужно снять аттрибут

Iska 15-05-2012 22:46 1916632

Код:

For Each strFile In Array("C:\qwerty.txt", "c:\Temp\01.txt", "d:\02\02.log")
    If objFSO.FileExists(strFile) Then
        With objFSO.GetFile(strFile)
            .Attributes = .Attributes And Not ReadOnly
        End With
    End If
Next


O L E G 16-05-2012 17:20 1917105

Iska, Опробовал Скрипт, выдает ошибку.
---------------------------
Windows Script Host
---------------------------
Сценарий: C:\Documents and Settings\Admin\Рабочий стол\Документы\vbs\14.vbs
Строка: 2
Символ: 5
Ошибка: Требуется объект: 'objFSO'
Код: 800A01A8
Источник: Ошибка выполнения Microsoft VBScript

---------------------------
ОК
---------------------------

Iska 16-05-2012 18:12 1917153

O L E G, код, приведённый в #4, не самодостаточный (и, увы, к тому же, содержит грубое упущение; приведённая ошибка связана не с ней). Он просто иллюстрирует, как можно:
Цитата:

Цитата O L E G
Указать сразу не сколько файлов, с которых мне нужно снять аттрибут »

Я полагал, что Вы уже освоились в WSH.

Вот пример полного кода:
Код:

Option Explicit

Const ReadOnly = &H01

Dim strFile

With WScript.CreateObject("Scripting.FileSystemObject")
        For Each strFile In Array("C:\qwerty.txt", "c:\Temp\01.txt", "d:\02\02.log")
                If .FileExists(strFile) Then
                        With .GetFile(strFile)
                                WScript.Echo strFile
                               
                                .Attributes = .Attributes And Not ReadOnly
                        End With
                End If
        Next
End With

WScript.Quit 0


O L E G 17-05-2012 09:05 1917451

Iska, Освоил НО, по верхностно. Благодарен


Время: 16:01.

Время: 16:01.
© OSzone.net 2001-