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