Войти

Показать полную графическую версию : Установка\Снятие аттрибутов c помощью vbs


O L E G
14-05-2012, 17:37
как снять аттрибут (чтение) с файла, ПРИМЕР на диске C:\qwerty.txt

Iska
15-05-2012, 01:46
как снять аттрибут (чтение) с файла, »
Атрибута «чтение» не существует в природе. Есть атрибут «ReadOnly», в просторечии именуемый атрибутом «Только для чтения»: File Attribute Constants (http://msdn.microsoft.com/en-us/library/windows/desktop/gg258117(v=vs.85).aspx).

Для чтения/установки атрибутов в WSH используется свойство «.Attributes» (Attributes Property (http://msdn.microsoft.com/en-us/library/5tx15443(v=vs.85).aspx)):
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
Iska, подскажи как Указать сразу не сколько файлов, с которых мне нужно снять аттрибут

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

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

Iska
16-05-2012, 18:12
O L E G, код, приведённый в #4 (http://forum.oszone.net/post-1916632.html#post1916632), не самодостаточный (и, увы, к тому же, содержит грубое упущение; приведённая ошибка связана не с ней). Он просто иллюстрирует, как можно:
Указать сразу не сколько файлов, с которых мне нужно снять аттрибут »
Я полагал, что Вы уже освоились в 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
Iska, Освоил НО, по верхностно. Благодарен




© OSzone.net 2001-2012