Run Shift+F5 = Shell execure current file missing after update 7.6.3
-
Dear community Run -> Shift+F5 = Shell execure current file is missing after the current update to 7.6.3. Is it a current issue or a known bug? Else is there a way to fix it manually, since I use it very often.
-
I don’t remember the last time “Shell execute current file” was in the Run menu by default. In all my portable copies from 7.2.2 to 7.6.3, I couldn’t find anything from “shell”, “execute”, or “current file” that looked liked “shell execute current file” – my guess is that you (or someone) had customized your
shortcuts.xml
to include that.I have two suggestions for re-creating the behavior I am assuming you mean: Close all instances of Notepad++; open one new instance; open
%appdata%\notepad++\shortcuts.xml
; edit the<UserDefinedCommands>
to include one or both of:<Command name="Execute This File" Ctrl="no" Alt="no" Shift="yes" Key="116">cmd /c "$(FULL_CURRENT_PATH)"</Command> <Command name="Shell Execute This File" Ctrl="no" Alt="yes" Shift="yes" Key="116">cmd /k "$(FULL_CURRENT_PATH)"</Command>
save the file. Exit notepad++. Re-run notepad++.
Now one or both of “Execute This File” and/or “Shell Execute This File” will appear in your Run menu – as defined, with the first being
Shift+F5
and the secondAlt+Shift+F5
(*). The first will run the current file using your default file-association for that file type inside acmd.exe
window, and the window will disappear when the file is done executing; the second will run the current file using your default file-association for that file type inside acmd.exe
window, and the window will remain open after running the file, and you can use that window as a normal windows command-line environment.*: you can easily swap those associations when you paste it in by editing the parameters in the
<command>
tag. Or, after reload, Run > Modify Shortcut / Delete Command, and edit the keyboard shortcut there -
Didn’t there used to be some menu command to open the current file with the “default application”. I can’t find any such option right now, but I seem to remember it. This is what the OP’s “shell execute” phraseology makes me think of.
-
Yeah, I thought there was, too, but my grep of a wide range of
shortcuts.xml
versions couldn’t find it. I assume it was implemented similar to what i showed above.Going through the change history on shortcuts.xml, I couldn’t find any previous versions that had something similar in
shortcuts.xml
– so I guess if it was there, it was either really old (pre-github), or was implemented elsewhere thanshortcuts.xml
/Run-menu -
Hi, @oliver-majchrzak, @alan-kilborn, @peterjones and All,
Alan, are you searching for this command :
File > Open in Default Viewer"
which opens current file with its default associated applicationBTW, there are, also, these two commands, which may be sometimes useful :
-
File > Open Containing Folder > Explorer
, which opens an Explorer instance in the folder of the current file and selects current file -
File > Open Containing Folder > cmd
which opens a CMD console window, in the folder of the current file
Cheers,
guy038
-
-
@guy038 said:
File > Open in Default Viewer"
Yes, that’s the one. It doesn’t appear in my older, very STABLE version of N++. Perhaps that is why I could not find it. I guess it is really unrelated to the OP’s OP.
-
Interesting, I hadn’t noticed that feature when it arrived, so I just went digging through commits and release history.
That feature was added in commit fbbe934 on Aug 13, 2017, which means it was in v7.5.
I love when I learn something new, so thanks @guy038. It’s a little less pleasant when I should have learned it in the past, but it’s better than not learning it. ;-)
-
I simply recall it being mentioned recently here in the Community. Nice digging of you to track down its history.
-
@PeterJones Thanks for the hint. Though, when executing the current file with “Shift+F5” (in my case a dos batch) the file is executed at the directory “%appdata%\notepad++” where the “shortcuts.xml” file is but not in the path where the current file is (“$(FULL_CURRENT_PATH)”). How can I fix this?
-
you can change to your document’s drive letter and path, by adding and combining
cd /d "$(CURRENT_DIRECTORY)"
followed by&&
and your desired command.(note: the cd option
/d
will also change to the correct drive letter (e.g. F:\), if your document is on another drive than c:, like a different hdd, usb, or network drive.)here are @PeterJones
shortcuts.xml
,<UserDefinedCommands>
from above, with added cd commands.<Command name="Execute This File" Ctrl="no" Alt="no" Shift="yes" Key="116">cmd /c cd /d "$(CURRENT_DIRECTORY)" && "$(FULL_CURRENT_PATH)"</Command> <Command name="Shell Execute This File" Ctrl="no" Alt="yes" Shift="yes" Key="116">cmd /k cd /d "$(CURRENT_DIRECTORY)" && "$(FULL_CURRENT_PATH)"</Command>
-
Alternately, if you’ve got a batch file that critically needs its current directory to be the same as the directory it’s in, that should be handled in the batch file itself. For example,
@cd /d %~dp0
(note that
%~dp0
is using the “parameter extensions” on the%0
(which is the .bat’s pathname) as described at https://ss64.com/nt/syntax-args.html, to extract the drive and path, but not the filename).With that near the beginning of your batch script, you won’t need to change directory externally.