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