Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Присвоить атрибуты файлу/папке через скрипт

Ответить
Настройки темы
VBS/WSH/JS - [решено] Присвоить атрибуты файлу/папке через скрипт

Аватара для boss911

Alien


Сообщения: 4262
Благодарности: 1030


Конфигурация

Профиль | Отправить PM | Цитировать


Похожая тема уже есть, но она для CMD/BAT, а мне нужен VBS/WSH/JS.

Помогите, пожалуйста, сделать скрипт, который бы присваивал определенной папке, например, эта папка будет в "%ProgramFiles%", атрибут 'Скрытый'. Только самой папке, а не всем вложенным файлам\папкам в ней. Задача такова, что бы иметь один файл, который бы при запуске ничего не показывал, иначе бы без раздумий давно сделал бы скрипт на CMD. Зарание спасибо.

Отправлено: 01:53, 10-11-2009

 

Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата 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
Это сообщение посчитали полезным следующие участники:

Отправлено: 03:43, 10-11-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для boss911

Alien


Сообщения: 4262
Благодарности: 1030

Профиль | Отправить PM | Цитировать


amel27, стоп, а переменные, что нельзя указывать? Кричит, что неверный путь, у-у-у, это очень плохо, не интересно тогда. Как будет выглядеть скрипт, если мне двум разным папкам надо задать атрибут, а так же как будет выглядеть скрипт, если обеим файлам нужно задать разные атрибуты.

Отправлено: 04:19, 10-11-2009 | #3


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


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
'--------------------------
Это сообщение посчитали полезным следующие участники:

Отправлено: 05:48, 10-11-2009 | #4


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


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"
Ежели потребно, в вызывающей программе можно анализировать код возврата (можно убрать — приведено только в качестве примера).
Это сообщение посчитали полезным следующие участники:

Отправлено: 06:19, 10-11-2009 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Присвоить атрибуты файлу/папке через скрипт

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Доступ - [решено] Как получить доступ к файлу или папке Vadikan Microsoft Windows 2000/XP 493 16-12-2017 11:16
Доступ - [решено] Права доступа к файлу в папке Windows\System32 jokeroto Microsoft Windows 7 28 27-11-2014 21:08
CMD/BAT - [решено] Задать атрибуты файлу/папке через скрипт Habetdin Скриптовые языки администрирования Windows 15 21-11-2013 17:53
Безопасность - присвоить папке пароль dgek Программное обеспечение Windows 10 05-02-2010 08:30
Доступ - Как установить право доступа отдельных программ к файлу или папке? Zordian Microsoft Windows Vista 5 02-03-2009 11:02




 
Переход