Adding a Shell Menu entry for creating an extension-less file

I often make notes in my folders in a form a simple file without holding any content - because its FILENAME is the note itself [an info / warning / explanation / instruction / whatever]. I find this modus operandi very efficient and also extremely simple thus time saving

Unfortunately: every time I do this I nevertheless do loose some time by repeating the mundane task of removing an extension of such file. Because the steps are:
1] I click right mouse button so that the shell menu shows up
2] I navigate to >>New<< in that right-click menu
3] I navigate further to the section with file formats
4] I choose an entry; e.g. >>Text Document<<
5] I write my note
6] I accept it
7] I have to remove the file extension [TXT in this case] from the file; one way or another

That last point is a total drag [one way or another]- and at the same time it is vital, because only then I get a nice looking file with a distinctive blank white icon provided by the OS. This icon stands out so much that there is no way I will not spot it out when glancing through my files and folders. And that also works in various Search windows

And as I was able to clean my shell menu with various REG files and pieces of software settings- then maybe there is another registry hack that could do this? Does anyone has an idea how to tweak the Shell Menu to show in its New sub-menu an entry for creating a file without extension?


I suppose that under the

Computer\HKEY_CLASSES_ROOT\

there should be created a new key named

ShellNew

Because the >>*<< applies in Registry "to all", as I understand it. Or rather it should be done in

Computer\HKEY_CLASSES_ROOT\Directory\

as that first one applies to files that are right-clicked - and I [in order to evoke the shell menu] will be clicking not on a file but somewhere on an empty space in a folder? But then what?

Or maybe there should be a key >> << [a one "without" a name] in the Computer\HKEY_CLASSES_ROOT\ - thus making a

Computer\HKEY_CLASSES_ROOT\ \ShellNew\

entry? Because that single pause would somehow tell Windows to not make and extension?


Or


Maye instead of registry hack this could be done with an usage of a BAT of PS1 script? A script that would either create a file without extension or with extension but would immediately delete it - and would present the user with the task of just entering the name of the file? It could be done in various ways; with a command line or using GUI of Windows

But in the end I would also need to have a convenient way to execute such script - preferably by choosing it from shell menu [preferably from New]. Maybe a combo with some third party software, like AutoHotkey or something?


And some thoughts / info:

A] This comes down to simple rules: file without extension = file with a default white / blank icon; file without extension = THIS MUST BE SOME IMPORTANT MESSAGE THAT I WROTE TO MYSELF; file without a white / blank icon = THIS MUST BE SOME IMPORTANT MESSAGE THAT I WROTE TO MYSELF

B] Hiding extensions of files is not a workaround. Plus I need to see extensions of other files. But maybe it is possible to somehow hide a particular extension - which would do the trick as long as an entry for it would be present in the New?

C] It is theoretically possible to hide files from the user in Windows. I use outdated Sony Sound Forge 7.0 for editing audio. Whenever e.g. WAV file is loaded, in its folder a SFK temporary file is created which holds some editing information which can I should be deleted afterwards. But the user can also choose in options to always hide new such SFK files- so the user can see hidden system files but will not see those SFKs. But I do not know if those hidden SFKs are really created and remain very well hidden or they are just thrown to some one big temporary file created on drive C [thus cheating the user and not the operating system

D] Although that default white / blank icon is good, I would like to change it to a one that I would pick. But how?

You can only write a new file into a folder. Therefore you can write such a file on the right or on the left panel in the windows file explorer:

See the first answer here how to add it manually to the registry:

Maybe an easier solution: Just create your "THIS MUST BE..." file once like you want to have it, with your Text, Icon, Content, Extension.
Then you create a cmd-batch who has only one task: Copy such a prepared file from your \MyPreparedFiles folder to the actual target directory (the place where you right click on the context menu and choose your copy batch).

1 Like

Create a BAT file containing these 3 lines:
@echo off
set /p FileName="Enter File Name: "
echo.>"%~1\%FileName%"

Then:

  1. Drag and drop the folder in which you want the new file to be created onto the BAT file.
  2. Enter the file name where prompted in the command window.
  3. Press Enter.
1 Like

Impressing

I could utilize that approach to save some clicks - but it would not do the whole task

More impressive

This would also save me some clicks - I think even more than with the above approach

Most impressive

This almost exactly what I need - because it has this drawback of all that Then: [...]


But - I can combine it with the abilities of FreeCommander


In FC under the

Customize favorite toolbar > Define favorite toolbars > Program of folder:

a path to the BAT file can be put for an item [an icon put on a toolbar]. And then under the

Customize favorite toolbar > Define favorite toolbars > Parameter:

the user can specify in which directory the file with that BAT script is to be created - i.e. in which of the two Panels that FreeCommander uses. The options for this combo are

%LeftDir%
%RightDir%
%ActivDir%
%InactivDir%

Adding one of the above parameters under the

Customize favorite toolbar > Define favorite toolbars > Start folder:

will not work however


And I also have polished the script itself it terms of the visual side

@echo off

echo.
echo Enter the name of the extension-less file that is to be created
echo.

set /p FileName=" >"

echo. >"%~1%FileName%"



And so thank you both very much

So the above works


But the things that I would still change are:

1] The ability to run this script in any place without the help of FreeCommander - and without the need of coping the BAT to a given folder or opening a folder in which the BAT is waiting

2] Addition of the ability to press Esc to close the CMD window

3] The icon of extension-less files. There probably is a single place in Registry which tells the whole operating system what is the default icon for unknown / unassigned files

Keep the BAT file wherever you want, and create a shortcut to it wherever you want.

Add one last line to the BAT file:
pause

Yes- I never know where I will need to make a note, so that would seem to be in accordance with my modus operandi

But my MO does not allow me for creation of dozens of copies of shortcuts leading to it; a then deletion of them. It would be just a new drag for me [although more palatable then the original / normal method involving the shell menu]

It does not work in the way I need it


I want to press Esc and close the CMD window at anytime [instead of having to click the X icon or pressing ALT + F4 or going to the icon on Taskbar]

And yes- I know that now the Esc has a nice function of deleting everything in the command line of that window. But [in case of a mistake] I will still be able to delete what I wrote with the Backspace. [The ideal way would be to retain the current Esc function with only the double pressing of this key resulting with closure of the window; or a single pressing of Esc when nothing is written yet in that line]

That default windows file icon for unknown files is most probably located at

%SystemRoot%\System32\shell32.dll

A tried using various pieces software do get directly to it or it copy placed on some other than system drive


Microangelo Explorer, Microangelo Librarian and Microangelo Studio at even loading that DLL file. Microangelo On Display is able to change that icon "somewhere in the system" [as the chosen icon is nowhere to be found in the Registry] - and unfortunately does this only for Windows Explorer [as for example FreeCommander at the same time still displays the dafault icon]

Resource Hacker loads that DLL but shows no icons in it - at least not in the same ways as "normal" EXE do [all those various ones that I have worked on till this day]

CustomizerGod when trying to replace it [third from the left in the top row in the General Icons] spits an error saying "parameter is incorrect" [plus this Modifying SHELL32.dll? | Windows 10 Forums shows that further down the line it is top level Matrix stuff]

FileTypesMan shows an entry for Folder, Drive, Directory\Background and Directory - but of course not for File. And what is more it shows for multiple entries the icon chosen in Microangelo On Display - but not only Folder, Drive, and Directory it shows [after pressing F2] that the location for the icon is %SystemRoot%\System32\shell32.dll,3. And changing that location does nothing

Winaero Tweaker apparently does not take at all notice of this settings of the operating system


I also found info that files

imageres.dll
moricons.dll
powercpl.dll

are supposedly holding more [newer] system icons. But on my Windows these files weight only few KB while that shell32.dll has almost 6 MB - so it cannot be true [at least not anymore on my freshly installed Windows]

And the is also the issue of the doppelganger located at

C:\Windows\SysWOW64\shell32.dll

and of all those multiple backup versions scattered around the Window folders for files kept for installment and [I guess] recovery purposes - which I bet will overwrite whatever modifications that I will do to this or that DLL with a newer / proper versions of them during reboot or during an update of the entire system


And so trying to overcome the issue of changing the icon maybe this old idea could become to play:



So is there a way to either change the default icon for files - or hide one particular extension [by not showing that extension but still showing at the same time the file with that extension]?