Add a context menu option to list all files in a folder and save it as text file
okthen has commented here with an easier way if you know registry :
Go to the Folder tree My Computer\HKEY_CLASSES_ROOT\Folder\shell\ Right Click and select New»Key name the key “List Files and Folders” Now add another key to it named command. Go to the Default on right panel and double click on Default REG_SZ and paste
cmd /c dir %1 /a /b >%1\list.txt
Thanks okthen
Well the title explains it all. What we are going to do is add an option like this to the context menu (Right Click) of all folders. When you click on that the result of a dir command (all files and folders in that Filder) are listed and saved to a file name Listofile.txt in the same Folder. This file is then automatically opened. All this can be done by using simple tools available in windows itself. If you need to know more about batch files please read the tutorial on Batch files. Consider reading it first if you don’t know what a batch file is.
Step 1 : Create a batch file
Create a batch file named “ListFile.bat” at “C:\Program Files\Mine\” folder (of course you can use any name and any location). Noe Right click on it and select Edit. The file will now be opened in NotePad. Enter the following lines as seen in the screen shot here. This step is common to both methods - using registry and using folderoptions menu. The commands are :
cd %1
dir /a /p /o:gen>listofile.txt
start “List of Files” notepad listofile.txt
exit
First line the batch file accepts the path of directory you clicked and changes the directory - cd to it. %1 is the argument.The second line produces the list of files and directories and redirects (>) to a file in that directory named listofile.txt , “start” starts notepad as a new process independent of the batch file and opens the listofile.txt .If you simply type notepad the process will be child of the batch file the result can be observed if you try it.
Adding an option to folder Menu
Easy way - Folder options
Goto Folder Options and select File types select New to add the new action to folder context menu.


Just restart Windows or Restart Windows Explorer and you will see the added options.
Hard Way - Registry Editing
OK so if you want a brief intro to editing registry please read the previous posts - Introduction to the Windows Registry, Editing Registry a few things to know. Now Go to the Folder tree My Computer\HKEY_CLASSES_ROOT\Folder\shell\ Right Click and select New»Key name the key “List Files and Folders” Now add another key to it named command. Go to the Default on right panel and double click on Default REG_SZ and paste “C:\Program Files\Mine\Listfile.bat” “%1″ and save it.
.So the adding section is finished both the hard way and the easy way.
Result
Since all the hard work is done now lets go for the piece of cake. Right Click on any folder and select List Files and Folders. You will see the file named Listofiles.txt opened and the list of files inside that. The file is also saved inside the folder you selected.

You may also want to know How to implement built in Parental Control in Windows XP
Buy me a cup of hot coffee - help me keep posting all through the nightso that you will get the updates automatically to your feed reader.
Tags: Batch/Shell script, Command Prompt/Shell, Customize, File, Tips
You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.


Test Comment to verify the comment form
Go to the Folder tree My Computer\HKEY_CLASSES_ROOT\Folder\shell\ Right Click and select New»Key name the key “List Files and Folders” Now add another key to it named command. Go to the Default on right panel and double click on Default REG_SZ and paste
cmd /k dir %1 /a /b /s >%1\list.txt
exit registry editor
oops messed up its
cmd /c dir %1 /a /b >%1\list.txt
Thanks ‘okthen’ its better and easy…
sorry i messed up awhile back
cmd /c dir %1 /a /b >%1\list.txt
would not only be unable to list files in folders with long file names but also it would not be able to output the list.txt to a folder with a long file name in order for it to work with long folder names, u need to use quotes around the %1’s also, if you use >> instead of > it will append to any existing list.txt in the folder you are catalogging instead of replacing the text file with a new one
if you want to append to a pre-existing list.txt when one already exists in the output folder then use:
cmd /c dir “%1″ /a /b /s >>”%1″\list.txt
or if you want it to replace a possibly pre-existing list.txt in the same output folder every time
cmd /c dir %1 /a /b >%1\list.txt
————————————————
if you dont wanna screw around in regedit
————————————————
then copy the following to a notepad document and then save it (where you can find it to click on) as listfiles.reg (NOTE make sure when u are in the save as dialog box in notepad you must use quotes around “listfiles.reg” otherwise it will loose its .reg extension and be useless)
[Start copy below this line]
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Folder\shell\Make FileList]
[HKEY_CLASSES_ROOT\Folder\shell\Make FileList\command]
@=”cmd /c dir \”%1\” /a /b /s >>\”%1\”\\list.txt”
[End copy above this line]
once the above is saved into a file called “listfiles.reg”
find the file in whatever folder you put it in
Right click on the file, left click on Merge
a box will ask are you sure? Yes/No click Yes
now you have a new command available “Make FileList”
when you right click any folder you will see this option
if you left click on the option it will then create a new file within that folder called list.txt which contains the contents of that folder as it was each time you told it to make a list
i realised awhile back i did not afford for long folder names but only now decided to correct it since i want to use almost the exact same thing to create a context deltree command (for quick erasure of files when i want it without using 1: shift+delete or 2: telling recycle bin to never be active keep files)
Hi OKTHEN
thank you very much.
BTW please contact me if you don’t mind .. I don’t have your email address