Sunday 12 May 2019

ListAttr.exe lists all 19 of the attributes of a file, folder, volume, or device.

This uses the inbuilt compilers in Windows 10 - there are three VB.NET compilers and three C# compilers - just copy each text file into the same folder and double click the batch file to make the program.
@echo off
ECHO Three files follow
ECHO ListAttr.bat
ECHO This file compiles ListAttr.vb to ListAttr.exe using the system VB.NET compiler.
ECHO ListAttr.exe lists all 19 of the attributes of a file, folder, volume, or device.
Echo To Use
Echo         ListAttr ^
Echo -----------------------------------------------------------------------------------------
C:\Windows\Microsoft.NET\Framework\v4.0.30319\vbc "%~dp0\ListAttr.vb" /out:"%~dp0\ListAttr.exe" /target:exe
Pause



Echo ListAttrTest.Bat
"%~dp0\ListAttr" C:
"%~dp0\ListAttr" C:\
"%~dp0\ListAttr" C:\Windows\System32\Catroot
"%~dp0\ListAttr" nul
"%~dp0\ListAttr" c:\bootnxt
For /d %%A in ("C:\Windows\*") Do @"%~dp0\ListAttr" %%~A
Pause



'ListAttr.vb
imports System.Runtime.InteropServices 
Public Module MyApplication  

Public Declare Unicode Function GetFileAttributesW Lib "Kernel32" (ByVal Path As String) As Integer
Public Const FILE_ATTRIBUTE_ARCHIVE = 32 
Public Const FILE_ATTRIBUTE_COMPRESSED = 2048 
Public Const FILE_ATTRIBUTE_DEVICE = 64 
Public Const FILE_ATTRIBUTE_DIRECTORY = 16 
Public Const FILE_ATTRIBUTE_ENCRYPTED = 16384 
Public Const FILE_ATTRIBUTE_HIDDEN = 2 
Public Const FILE_ATTRIBUTE_INTEGRITY_STREAM = 32768 
Public Const FILE_ATTRIBUTE_NORMAL = 128 
Public Const FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = 8192 
Public Const FILE_ATTRIBUTE_NO_SCRUB_DATA = 131072 
Public Const FILE_ATTRIBUTE_OFFLINE = 4096 
Public Const FILE_ATTRIBUTE_READONLY = 1 
Public Const FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS = 4194304 
Public Const FILE_ATTRIBUTE_RECALL_ON_OPEN = 262144 
Public Const FILE_ATTRIBUTE_REPARSE_POINT = 1024 
Public Const FILE_ATTRIBUTE_SPARSE_FILE = 512 
Public Const FILE_ATTRIBUTE_SYSTEM = 4 
Public Const FILE_ATTRIBUTE_TEMPORARY = 256 
Public Const FILE_ATTRIBUTE_VIRTUAL = 65536 
  
Public Sub Main ()
 Dim Ret as Integer
 Dim OutPut As String
 Output = Command() & " - " & vbtab & vbtab
 Ret = GetFileAttributesW(Command())
 If Ret = -1 Then 
  Console.writeline("Error " & err.lastdllerror)
 Else
  If (Ret And FILE_ATTRIBUTE_ARCHIVE) = FILE_ATTRIBUTE_ARCHIVE Then Output = OutPut & "Archive "
  If (Ret And FILE_ATTRIBUTE_COMPRESSED) = FILE_ATTRIBUTE_COMPRESSED Then Output = OutPut & "Compressed "
  If (Ret And FILE_ATTRIBUTE_DEVICE) = FILE_ATTRIBUTE_DEVICE Then Output = OutPut & "Device "
  If (Ret And FILE_ATTRIBUTE_DIRECTORY) = FILE_ATTRIBUTE_DIRECTORY Then Output = OutPut & "Directory "
  If (Ret And FILE_ATTRIBUTE_ENCRYPTED) = FILE_ATTRIBUTE_ENCRYPTED Then Output = OutPut & "Encrypted "
  If (Ret And FILE_ATTRIBUTE_HIDDEN) = FILE_ATTRIBUTE_HIDDEN Then Output = OutPut & "Hidden "
  If (Ret And FILE_ATTRIBUTE_INTEGRITY_STREAM) = FILE_ATTRIBUTE_INTEGRITY_STREAM Then Output = OutPut & "Integrity_Stream "
  If (Ret And FILE_ATTRIBUTE_NORMAL) = FILE_ATTRIBUTE_NORMAL Then Output = OutPut & "Normal "
  If (Ret And FILE_ATTRIBUTE_NOT_CONTENT_INDEXED) = FILE_ATTRIBUTE_NOT_CONTENT_INDEXED Then Output = OutPut & "Not_Content_Indexed "
  If (Ret And FILE_ATTRIBUTE_NO_SCRUB_DATA) = FILE_ATTRIBUTE_NO_SCRUB_DATA Then Output = OutPut & "No_Scrub_Data "
  If (Ret And FILE_ATTRIBUTE_READONLY) = FILE_ATTRIBUTE_READONLY Then Output = OutPut & "ReadOnly "
  If (Ret And FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS) = FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS Then Output = OutPut & "Recall_On_Data_Access "
  If (Ret And FILE_ATTRIBUTE_RECALL_ON_OPEN) = FILE_ATTRIBUTE_RECALL_ON_OPEN Then Output = OutPut & "Recall_On_Open "
  If (Ret And FILE_ATTRIBUTE_REPARSE_POINT) = FILE_ATTRIBUTE_REPARSE_POINT Then Output = OutPut & "Reparse "
  If (Ret And FILE_ATTRIBUTE_SPARSE_FILE) = FILE_ATTRIBUTE_SPARSE_FILE Then Output = OutPut & "Sparse "
  If (Ret And FILE_ATTRIBUTE_SYSTEM) = FILE_ATTRIBUTE_SYSTEM Then Output = OutPut & "System "
  If (Ret And FILE_ATTRIBUTE_TEMPORARY) = FILE_ATTRIBUTE_TEMPORARY Then Output = OutPut & "Temporary "
  If (Ret And FILE_ATTRIBUTE_VIRTUAL) = FILE_ATTRIBUTE_VIRTUAL Then Output = OutPut & "Virtual "
 End If
 Console.writeline(OutPut)
End Sub
End Module 

No comments:

Post a Comment