Community
    • Login

    Automatic rename of text file to current date

    Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
    15 Posts 4 Posters 5.2k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • NuclearBinocularsN
      NuclearBinoculars
      last edited by

      Hi guys.

      I need a method that renames my “To do list” text file every day, updating the current time and date such as 09-30-18.

      Does anyone know of a method/plugin/batch file/script/program that will allow my “To do list” to automatically be renamed every day with the current date?

      Any help is appreciated.
      Thank you,
      -Jay

      Scott SumnerS 2 Replies Last reply Reply Quote 1
      • Scott SumnerS
        Scott Sumner @NuclearBinoculars
        last edited by

        @NuclearBinoculars

        It is probably very reasonable to accomplish this with one of the scripting plugins (e.g. Pythonscript).

        1 Reply Last reply Reply Quote 1
        • Scott SumnerS
          Scott Sumner @NuclearBinoculars
          last edited by

          @NuclearBinoculars said:

          I need a method that renames my “To do list” text file every day, updating the current time and date such as 09-30-18.

          Thinking about this some more…what is the use for this? Why have a file that “moves around”? Why not just call your file “TODO.txt” and just look for that name when you need it? I’m not saying it can’t be done, I’m just wondering about the WHY…

          And thinking about the possible scripting solution…you’d need some sort of “trigger” for it to do its action, for example, you are just now changing your last Friday’s version of the file (e.g. 20180928_TODO.txt) and you hit Save and at that point your filename updates (e.g. 20181001_TODO.txt)? Or do you need the trigger to be simply having the file open in a Notepad++ tab and midnight passes and boom, filename gets changed? Or…if neither of those scenarios, what exactly are you looking for?

          1 Reply Last reply Reply Quote 1
          • NuclearBinocularsN
            NuclearBinoculars
            last edited by

            Hi Scott. Sorry I didn’t see your message until just now; I’m not familiar with this forums interface and I don’t come here often.

            Regarding my issue - it really isn’t a BIG DEAL. I just want my “to do list”.txt name to automatically update to the current date each day. So instead of manually naming my file “TTDO 11-11-18”, “TTDO 11-12-18”, “TTDO 11-13-18” etc., the file will automatically update the current date.
            Since notepad++ automatically saves, I do not really need a “save trigger” for this.
            I guess I would want the trigger to work with the system clock to automatically update/rename the file.
            Do you have any suggestions for this?
            (I am also vaguely curious about this for future backup issues and different file types, programs, etc., as I have not done much scripting/coding at all.)

            Thank you for responding to me :)
            -J

            Scott SumnerS 1 Reply Last reply Reply Quote 0
            • Scott SumnerS
              Scott Sumner @NuclearBinoculars
              last edited by

              @NuclearBinoculars

              I still am having difficulty understanding the utility of this. If I COULD be made to understand, maybe I will feel it is useful to me, in which case I am very likely to write a complete script (for myself) and share it here… Otherwise, I can only give hints…

              A first hint would be to take the easy road and hook into the “file-saved” event and rename the file there if the current time indicates a new day has arrived.

              NuclearBinocularsN 1 Reply Last reply Reply Quote 0
              • guy038G
                guy038
                last edited by guy038

                Hello, @nuclearbinoculars, @scott-sumner and All,

                Here is a method, using the NppExec plugin, a very powerful plugin, that you can download from, below :

                https://github.com/d0vgan/nppexec/releases

                I assume some hypotheses :

                • Your file is always named MM-JJ-AAAA_TODO.txt

                • In the NppExec code, below, it is supposed to belong to a folder named “D:\AB CDE”. Of course, any pathname can be used instead, even if it contains spaces in name, as I surrounded it with double-quotes, in the code !

                • Your MM-JJ-AAAA_TODO.txt file must be unique in its folder ! I means no other file with name ending with _TODO.txt

                • Note that, either,

                  • the install directory of Notepad++.exe

                  • The working directory of NppExec plugin

                can be totally different from the location of your MM-JJ-AAAA_TODO.txt file


                So :

                • Install the NppExec plugin, first

                • Open Notepad++

                • Select Plugins > NppExec > Execute… ( F6 )

                Copy all the text, below, in the window of the <temporary script>

                // START of the script
                
                npp_console off                                           // Close the NPPEXEC CONSOLE window, if possibly OPENED 
                
                npp_close _TODO.txt                                       // Close the 'MM-JJ-AAAA_TODO.txt" N++ tab, if PRESENT
                
                npe_console v+                                            // Allows to store the OUTPUT CHILD process in NppExec variable $(OUTPUT) 
                
                cmd /c dir /b "D:\AB CDE\*_TODO.txt"                      // Return the CURRENT name of a file, ending with "_TODO.txt"
                
                cmd /c rename "D:\AB CDE\$(OUTPUT)" %date:/=-%_TODO.txt   // RENAME the NAME file with the CURRENT date, DASH separated, followed with "_TODO.txt"
                
                npe_console v-                                            // Disable storing the OUTPUT of the NppExec CHILD process
                
                npp_open "D:\AB CDE\*_TODO.txt"                           // Open the file "MM-JJ+1-AAAA_TODO.txt" in a N++ NEW tab
                
                // END of the script
                
                • Everywhere the string “D:\ABC DE” occurs, just replace it, with the current location of your MM-JJ-AAAA_TODO.txt file

                • Now, click on the OK button, to execute this temporary script

                => The MM-JJ-AAAA_TODO.txt tab, if it exists, disappears, and almost immediately, a new tab occurs, with name = MM-JJ+1-AAAA_TODO.txt, and same contents, due to an internal rename process ;-))

                • Then, If result is as expected, click, on the Save… button and save this code as, let’s say, ToDo script

                • Finally, choose the option Plugins > NppExec > Advanced Options…

                • In the right upper corner of that dialog, for the option Execute the script when Notepad++ starts:, select the ToDo script and click on the OK button

                From now on, each time, you open Notepad++, you’ll see your TODO file, with current date, even if your start Notepad++ with the option Notepad++ -nosession, in a CMD console window ;-))

                Best Regards,

                guy038

                P.S. :

                Of course, As I’m French, the true date format ( when using echo %date% in a CMD window ), is DD/MM/YYYY but it should work correctly for any date format !

                NuclearBinocularsN 1 Reply Last reply Reply Quote 3
                • NuclearBinocularsN
                  NuclearBinoculars @Scott Sumner
                  last edited by

                  @Scott-Sumner Scott I’m not sure what else to tell you, or what more to explain. I just want my To Do List to have the current date resolved in the name every day…maybe i’m kinda anal about things like this. I tend to be overly organized a lot of the time >…<

                  1 Reply Last reply Reply Quote 0
                  • NuclearBinocularsN
                    NuclearBinoculars @guy038
                    last edited by

                    (DOH, I had a 20 minute barrier for multiple responses, due to being a new user.)
                    @guy038 Guy, AWESOME!!! I just saw this, cool! I’m gonna follow your directions and see if I can get this sucker to work hehe.

                    Thank you so much for that detailed and easy-to-follow method. I will attempt to implement it now.

                    1 Reply Last reply Reply Quote 0
                    • NuclearBinocularsN
                      NuclearBinoculars
                      last edited by

                      Hi guy038.

                      I finally had time to ATTEMPT to implement the script you created. It is not working for me :(
                      I have pasted my edited version below:

                      // START of the script

                      npp_console off // Close the NPPEXEC CONSOLE window, if possibly OPENED

                      npp_close _TODO.txt // Close the 'MM-JJ-AAAA_TODO.txt" N++ tab, if PRESENT

                      npe_console v+ // Allows to store the OUTPUT CHILD process in NppExec variable $(OUTPUT)

                      cmd /c dir /b “C:\Users\Jayce\Desktop*_TODO.txt” // Return the CURRENT name of a file, ending with “_TODO.txt”

                      cmd /c rename “C:\Users\Jayce\Desktop$(OUTPUT)” %date:/=-%_TODO.txt // RENAME the NAME file with the CURRENT date, DASH separated, followed with “_TODO.txt”

                      npe_console v- // Disable storing the OUTPUT of the NppExec CHILD process

                      npp_open “C:\Users\Jayce\Desktop*_TODO.txt” // Open the file “MM-JJ+1-AAAA_TODO.txt” in a N++ NEW tab

                      // END of the script

                      Notice, that I just temporarily changed the date a few days ahead to test the script, but when I use the echo command in cmd it DOES show my temporary changed date.

                      Can you take a look at the script text, and tell me if you see something that is not right? Maybe a permission issue? I keep my TODO list on my desktop for easier access.

                      Thank you so much for your time and help :)

                      -Jay

                      1 Reply Last reply Reply Quote 0
                      • guy038G
                        guy038
                        last edited by

                        Hi, @nuclearbinoculars,

                        Could you tell me the result of the command dir /b "C:\Users\Jayce\*_TODO.txt", on your system, after opening a CMD console window ?

                        Cheers,

                        guy038

                        NuclearBinocularsN 1 Reply Last reply Reply Quote 0
                        • NuclearBinocularsN
                          NuclearBinoculars @guy038
                          last edited by

                          @guy038 Hi again guy.

                          When I use dir /b “C:\Users\Jayce*_TODO.txt” from cmd, I get a File Not Found return.

                          When I use dir /b “C:\Users\Jayce\desktop*_TODO.txt” from cmd, I get 11-29-18_TODO.txt

                          I’m not sure what is going on? I think it should pick up the to do list with the * card even though the desktop is not specifically queried?

                          1 Reply Last reply Reply Quote 0
                          • guy038G
                            guy038
                            last edited by

                            Hi, @nuclearbinoculars,

                            Sorry, I was mistaken, in my last post ! Indeed, I meant :

                            Could you tell me the result of the command dir /b "C:\Users\Jayce\Desktop\*_TODO.txt" , on … … …

                            On the other hand, you said :

                            When I use dir /b “C:\Users\Jayce*_TODO.txt” from cmd, I get a File Not Found return.

                            When I use dir /b “C:\Users\Jayce\desktop*_TODO.txt” from cmd, I get 11-29-18_TODO.txt

                            I suppose that you wanted to mean :

                            When I use dir /b "C:\Users\Jayce\*_TODO.txt" from cmd, I get a File Not Found return.
                            
                            When I use dir /b "C:\Users\Jayce\desktop\*_TODO.txt" from cmd, I get 11-29-18_TODO.txt
                            

                            with a reverse slash, ( \ ) after Jayce and desktop, didn’t you ?


                            If so, just verify that, in your NppExec script, in 3 locations, that a reverse slash, \, exists, right after the word Desktop !

                            Best Regards,

                            guy038

                            NuclearBinocularsN 1 Reply Last reply Reply Quote 1
                            • PeterJonesP
                              PeterJones
                              last edited by

                              @NuclearBinoculars ,

                              As hints for posting in this forum:

                              There is a preview pane to the right, which will show how we will see your text. Please check it to make sure that what we will read will match what you intended. It makes it much easier if we don’t have to guess what your actual text was.

                              There is a little ? help icon in the editing pane while you are making your post, which explains this forum uses Markdown, and links to the official Markdown help. There’s also an excellent guide to Markdown in this forum, which gives something of a how-to/style-guide for posting here.

                              The Markdown processor in the forum treats certain characters and character-sequences as special (as described in those links). To avoid having the forum mangle your text, you can surround a piece of inline text with ` (backtick or grave-accent) characters, which will also render the surrounded text in a red monospaced font: for example when @guy038 wrote dir /b "C:\Users\Jayce\Desktop\*_TODO.txt", he used the syntax `dir /b "C:\Users\Jayce\Desktop\*_TODO.txt"`. If he had not, it would have rendered as dir /b “C:\Users\Jayce\Desktop*_TODO.txt” – notice how \* gets collapsed to *. The preview window shows you this.

                              If you have multiple lines you want to be rendered without interpretation, you can either put a blank line before and after and indent every line by 4 spaces, or you can surround it by a line containing only ```z before and one containing only ``` after:

                              ```z
                              When I use dir /b "C:\Users\Jayce\*_TODO.txt" from cmd, I get a File Not Found return.
                              When I use dir /b "C:\Users\Jayce\desktop\*_TODO.txt" from cmd, I get 11-29-18_TODO.txt
                              ```
                              

                              which will then render as

                              When I use dir /b "C:\Users\Jayce\*_TODO.txt" from cmd, I get a File Not Found return.
                              When I use dir /b "C:\Users\Jayce\desktop\*_TODO.txt" from cmd, I get 11-29-18_TODO.txt
                              

                              Hope this helps.

                              (I don’t have anything in the technical content to add, because @guy038 has done an excellent job of providing support. I just thought I’d help with the forum meta help, to make it easier to communicate your information to us.)

                              1 Reply Last reply Reply Quote 0
                              • NuclearBinocularsN
                                NuclearBinoculars @guy038
                                last edited by NuclearBinoculars

                                @guy038 Hi again and again guy :)

                                YEP, I thought you had meant to use the dir /b "C:\Users\Jayce\desktop\*_TODO.txt" from cmd, I get 11-29-18_TODO.txt

                                Also, YEP, I DID mean to have a reverse slash after Jayce and desktop. For some reason it did not show up and my edit time had timed out.

                                OK, I will edit as you suggested and try again.

                                EDIT: Thank you PeterJones, I will try to use the proper syntax from now on…

                                Scott SumnerS 1 Reply Last reply Reply Quote 1
                                • Scott SumnerS
                                  Scott Sumner @NuclearBinoculars
                                  last edited by

                                  @NuclearBinoculars said:

                                  I DID mean to have a reverse slash…For some reason it did not show up

                                  The reason is that you did not put your text inside proper delimiters (the ones that turn text shown here into a red-on-pinkish background, for example). If you had, it would not have consumed your backslashes. But with your most recent posting you seem to have mastered the delimiters technique, so I’ll say no more… :-)

                                  1 Reply Last reply Reply Quote 0
                                  • First post
                                    Last post
                                  The Community of users of the Notepad++ text editor.
                                  Powered by NodeBB | Contributors