## Batch How To ...

Many times we need to check a file's size, its last-modified date, its location, or we may require its fully qualified path in short (8.3) notation.

Arguably CMD's most versatile internal command to the rescue: FOR.

```FOR %%? IN (file_to_be_queried) DO (
ECHO File Name Only       : %%~n?
ECHO File Extension       : %%~x?
ECHO Name in 8.3 notation : %%~sn?
ECHO File Attributes      : %%~a?
ECHO Located on Drive     : %%~d?
ECHO File Size            : %%~z?
ECHO Last-Modified Date   : %%~t?
ECHO Parent Folder        : %%~dp?
ECHO Fully Qualified Path : %%~f?
ECHO FQP in 8.3 notation  : %%~sf?
ECHO Location in the PATH : %%~dp\$PATH:?
)```
 Notes: 1: Not all of these properties can be read this way in every Windows version. With every new Windows version, more options became available. Type `FOR /?` for more details. 2: These properties can only be read if the file exists and can be found. Open a command prompt and go to a directory, assuming D:\ for the sake of this explanation. Now try this command: `FOR %%A IN (notepad.exe) DO ECHO.%%~\$PATH:A` It will show you notepad.exe's fully qualified path regardless of the current directory (because notepad.exe is located in a folder that is in the PATH). Now try `FOR %%A IN (notepad.exe) DO ECHO.%%~fA` This will show you a fully qualified path as if notepad were located in the current directory, e.g. `D:\notepad.exe` So make sure the file to be queried is either in the current directory, or use its fully qualified path, or use `%%~\$PATH:?` if it is located in the PATH.

Many of these properties can be combined, as is shown for the `s` option (short, or 8.3 notation).

Play with it, experiment, and learn. Have fun.