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 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