'// Check a Directory for read only files '// '// CASE [+] [-] [!] source '// '// + Sets Read-only file attribute. '// - Clears Read-only file attribute. '// ! Information about Current directory '// source Specifies the directory to be inspected Set objShell = CreateObject("WScript.Shell") Set fso = CreateObject("Scripting.FileSystemObject") iNum = WScript.Arguments.Count If iNum >= 2 Then if fso.FolderExists(WScript.Arguments.Item(1)) then checkFolder WScript.Arguments.Item(0), WScript.Arguments.Item(1) else checkFolder WScript.Arguments.Item(0), "." end if else objShell.Run "notepad readOnly.vbs" end if Sub checkFolder(Param, directory) Set Fldr = fso.GetFolder(directory) if Param = "!" then Set outFile = fso.CreateTextFile(directory & "\Attrib.ini", True) For Each File In Fldr.Files outFile.WriteLine(File.attributes & " " & File) next outFile.WriteLine(" ") outFile.WriteLine(" Value Description ") outFile.WriteLine(" 0 Normal file. No attributes are set. ") outFile.WriteLine(" 1 Read-only file. Attribute is read/write. ") outFile.WriteLine(" 2 Hidden file. Attribute is read/write. ") outFile.WriteLine(" 4 System file. Attribute is read/write. ") outFile.WriteLine(" 16 Folder or directory. Attribute is read-only. ") outFile.WriteLine(" 32 File has changed since last backup. Attribute is read/write. ") outFile.WriteLine(" 64 Link or shortcut. Attribute is read-only. ") outFile.WriteLine(" 128 Compressed file. Attribute is read-only. ") outFile.Close objShell.Run "notepad.exe " & directory & "\Attrib.ini" else For Each File In Fldr.Files if Param = "+" then if (File.attributes Mod 2 = 0) and (fso.GetFileName(File)<>"Attrib.ini") then File.attributes = File.attributes + 1 else if Param = "-" then if File.attributes Mod 2 <> 0 then File.attributes = File.attributes - 1 end if end if next end if End Sub