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

Ответить
Аватара пользователя
boss911

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

Сообщение boss911 »

Похожая тема уже
CMD/BAT - [решено] Задать атрибуты файлу/папке через скрипт
, но она для CMD/BAT, а мне нужен VBS/WSH/JS.



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

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

Сообщение amel27 »

Цитата boss911:



скрипт, который бы присваивал определенной папке, например, эта папка будет в "%ProgramFiles%", атрибут 'Скрытый'.
VBS/WSH/JS - [решено] Присвоить атрибуты файлу/папке через скрипт






Код:

Код: Выделить всё

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
Аватара пользователя
boss911

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

Сообщение boss911 »

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

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

Сообщение 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
'--------------------------
Аватара пользователя
Iska

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

Сообщение Iska »

boss911, можно и переменные окружения, только надо их дополнительно «развернуть». По приведённому в
VBS/WSH/JS - [решено] Присвоить атрибуты файлу/папке через скрипт
коду:



Код:

Код: Выделить всё

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"

Ежели потребно, в вызывающей программе можно анализировать код возврата (можно убрать — приведено только в качестве примера).
Ответить

Вернуться в «Скриптовые языки администрирования Windows»