Присвоить атрибуты файлу/папке через скрипт
Похожая тема уже есть, но она для CMD/BAT, а мне нужен VBS/WSH/JS.
Помогите, пожалуйста, сделать скрипт, который бы присваивал определенной папке, например, эта папка будет в " %ProgramFiles%", атрибут ' Скрытый'. Только самой папке, а не всем вложенным файлам\папкам в ней. Задача такова, что бы иметь один файл, который бы при запуске ничего не показывал, иначе бы без раздумий давно сделал бы скрипт на CMD. Зарание спасибо.
|
Цитата:
Цитата boss911
скрипт, который бы присваивал определенной папке, например, эта папка будет в "%ProgramFiles%", атрибут 'Скрытый'. »
|
Код:
strDIR = "C:\Program Files\Microsoft.NET"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objDIR = objFSO.GetFolder(strDIR)
objDIR.Attributes = 2
полный список атрибутов: http://msdn.microsoft.com/en-us/libr...43(VS.85).aspx
|
amel27, стоп, а переменные, что нельзя указывать? Кричит, что неверный путь, у-у-у, это очень плохо, не интересно тогда. Как будет выглядеть скрипт, если мне двум разным папкам надо задать атрибут, а так же как будет выглядеть скрипт, если обеим файлам нужно задать разные атрибуты.
|
boss911, где-то так:
Код:
Set objShell = WScript.CreateObject("WScript.Shell")
strPrograms = objShell.ExpandEnvironmentStrings("%ProgramFiles%")
strWinDir = objShell.ExpandEnvironmentStrings("%WinDir%")
AttribFolder strPrograms & "\Microsoft.NET", 2
AttribFolder strPrograms & "\Microsoft Office", 2
AttribFile strWinDir & "\regedit.exe", 2
AttribFile strWinDir & "\winhelp.exe", 2
'--------------------------
'Пользовательские процедуры
'--------------------------
Sub AttribFolder(strPath, intAttrib)
Dim objFSO, objDIR
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objDIR = objFSO.GetFolder(strPath)
objDIR.Attributes = intAttrib
End Sub
'--------------------------
Sub AttribFile(strPath, intAttrib)
Dim objFSO, objFLE
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFLE = objFSO.GetFile(strPath)
objFLE.Attributes = intAttrib
End Sub
'--------------------------
|
boss911, можно и переменные окружения, только надо их дополнительно «развернуть». По приведённому в #2 коду:
Код:
strDIR = "%ProgramFiles%\Microsoft.NET"
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set objWshShell = WScript.CreateObject("WScript.Shell")
Set objFolder = objFSO.GetFolder(objWshShell.ExpandEnvironmentStrings(strDIR))
objFolder.Attributes = 2
Или указывать имя каталога как аргумент при вызове скрипта:
Код:
Option Explicit
Dim objArgs
Dim objFSO
Dim strFolder, lngErrLevel
Set objArgs = WScript.Arguments
If objArgs.Count = 1 Then
strFolder = objArgs.Item(0)
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
If objFSO.FolderExists(objFSO.GetAbsolutePathName(strFolder)) Then
objFSO.GetFolder(strFolder).Attributes = 2
lngErrLevel = 0
Else
lngErrLevel = 2
End If
Set objFSO = Nothing
Else
lngErrLevel = 1
End If
Set objArgs = Nothing
WScript.Quit lngErrLevel
например:
Код:
wscript.exe "C:\Песочница\34\Sample.vbs" "%ProgramFiles%\Microsoft.NET"
Ежели потребно, в вызывающей программе можно анализировать код возврата (можно убрать — приведено только в качестве примера).
|
Время: 16:01.
© OSzone.net 2001-