topbanner_forum
  *

avatar image

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
  • January 18, 2019, 05:21 AM
  • Proudly celebrating 13 years online.
  • Donate now to become a lifetime supporting member of the site and get a non-expiring license key for all of our programs.
  • donate

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Tuxman [ switch to compact view ]

Pages: [1] 2 3 4 5 6 ... 85next
1
I added a clarification above.  :D

was completely at odds with every other rename program I've used  ;D

I had not tested most of them, I guess. Sorry for breaking your habits?

2
OK, so if I've got this right, maybe, the full path is split into two parts only to be acted upon:

  • \test\test2\One\two\three\ozorroee\
  • ofile.text

?

Starting with the current version, more or less.

With -dr, the whole path is seen as one string (with or without the file's extension  ;)), regex_replace() is applied to it.
Without -dr, only the second part (= the file name, with or without the file's extension  ;)) will be processed. In fact, the regex_search() function will not even see the parent path anymore.

Code: C++ [Select]
  1. if (bRenameDirectories) {
  2.     // If the user has decided to not rename directories, why would we
  3.     // want to rename paths on the way?
  4.     out_path_stream << parent_path_stream.str();
  5. }

(Stop modifying your postings while I reply to them.  :mad: :-[)

3
Yup, "processed" is a new output in 1.3.0, it means that the rename_file() function had created the target directory already.  :)
(Because if I would just count that as "exists", it'd fail.)

Ha!

4
You and your cheeky test cases.
The expected outcome should be a simulation (-n).  :P

Your flags suggest that

\test\test2\One\two\three\ozorroee\ofile.text

should be renamed to

\test\test2\One\twd\three\ozorroee\ofile.txtxt

Or something.  :huh:

Surprise me: Which one have I forgot to log this time?

5
I fixed the somewhat anti-logical behavior of the -d flag with version 1.3.0. It should match the README now less badly.

6
I fixed the -E flag with version 1.2.2. That was a really dumb error.

7
The full path is handled as a string (and split between path and filename and, optionally, extension during processing). I admit that some features can be confusing even to me.  ;D

So here's how it is intended to work:

  • remv "a" "b":
    The current directory is processed, all sub-directories are ignored. Folders won't be touched at all.
  • remv -r "a" "b":
    The current directory and all of its sub-directories are processed. If a path matches, it will be renamed.
    - a.txt will be renamed to b.txt
    - a\some.txt will be renamed to b\some.txt fixed with 1.3.0
    - However, a\ alone won't be renamed to b\ if no files match.
  • remv -dr "a" "b":
    The current directory and all of its sub-directories are processed. If a path matches, it will be renamed.
    - a.txt will be renamed to b.txt
    - a\some.txt will be renamed to b\some.txt
    - a\ alone will also be renamed to b\ if no files match.

 :-[

8
Yes, it does - so you can match subfolders.  :)

I don't know if you noticed but it was suggesting directory name changes even though I hadn't specified the -d parameter.

If they are a part of the path to a regular file, yes. You cannot rename a whole directory without a file in it though.
I could make the non-d call skip subfolders, but then -d would be the same thing as not using -r, or am I mistaken?

9
Years after everyone who needed that had already joined the superior Bitbucket.  :)

10
Nice. I haven't really done much with the PowerShell yet.  :Thmbsup:

11
Hmm, that might be fixed with a simple call to create_directories before renaming, so the target directories will be created even if the original directories didn't match your regex. But that would lead to empty folders when the files from them have been moved.

I'm currently experimenting a bit:

> .\a.exe -Erv "remv" "romv"
 Renaming       '.\remv.hpp' to '.\romv.hpp' ...
   error [rn]: operation not permitted
 Renaming       '.\remv.cpp' to '.\romv.cpp' ...
   error [rn]: operation not permitted
 [STATS] Renamed 0 files (2 failed, 4 skipped).

> .\a.exe -rv "remv" "romv"
 Renaming       '.\remv.hpp' to '.\romv.hpp' ...
 Renaming       '.\remv.cpp' to '.\romv.cpp' ...
 [STATS] Renamed 2 files (0 failed, 4 skipped).

Something about the -E flag is fishy.  :huh:
I'll look into it tomorrow or on Monday (I'm visiting friends over the weekend). Attaching version 1.2.1 with a broken -E flag above for the time being.

12
"-vv" shows more stats indeed. This is intended. :)
OK, the newline is ugly, granted...

13
Version 1.2.0 should recurse backwards.  :-[

14
N.A.N.Y. 2019 / Re: N.A.N.Y. 2019: The Decision Sieve
« on: January 09, 2019, 02:42 PM »
It works fine here. :(

15
Why do I even publish software one year in advance if people don't test it before it's too late?  ;D

Not renaming the .exe would require to write one function per platform, as C++ does not have a cross-platform way to find the "current .exe path" as far as I know.  :huh:
Coming closer with version 1.2.0... (attaching above.)

16
Never heard of that! Too late now - damn.

17
N.A.N.Y. 2019 / Re: N.A.N.Y. 2019: The Decision Sieve
« on: January 09, 2019, 10:48 AM »
 :huh:

I hate everything.
Will look at it... after having updated remv which will happen, uhm, maybe today.

18
N.A.N.Y. 2019 / Re: N.A.N.Y. 2019 Begins
« on: January 08, 2019, 09:55 AM »
It can be one as well.

19
Now, now.

> .\a -Evv "hpp" "npp"
 Processing '.\a.exe'.
 Processing '.\constants.hpp'.
 Processing '.\filestats.hpp'.
 Processing '.\help.hpp'.
 Processing '.\remv.cpp'.
 Processing '.\remv.hpp'.
 [STATS] Renamed 0 files (0 failed, 6 skipped).

> .\a -vv "hpp" "npp"
 Processing '.\a.exe'.
 Processing '.\constants.hpp'.
 Renaming     '.\constants.hpp' to '.\.\constants.npp' ... Successfully renamed .\constants.hpp to .\.\constants.npp.
 Processing '.\filestats.hpp'.
 Renaming     '.\filestats.hpp' to '.\.\filestats.npp' ... Successfully renamed .\filestats.hpp to .\.\filestats.npp.
 Processing '.\help.hpp'.
 Renaming     '.\help.hpp' to '.\.\help.npp' ... Successfully renamed .\help.hpp to .\.\help.npp.
 Processing '.\remv.cpp'.
 Processing '.\remv.hpp'.
 Renaming     '.\remv.hpp' to '.\.\remv.npp' ... Successfully renamed .\remv.hpp to .\.\remv.npp.
 [STATS] Renamed 4 files (0 failed, 2 skipped).

Granted, the ".\.\" part looks inconvenient, but good enough.  ;D
I'll look into it on Wednesday again. Checking in, updating the RAR and leaving you alone for today/tomorrow. :)

20
 :huh:

You truly make me sad. I'm on it (but off tomorrow)...
I'll report back.

21
To come back to 3.: I use the standard C++ regex header. Technically, $0 is supposed to work.  :huh:

1. is fixed (I removed the reference).  ;D
2. Head -> wall.
4. is actually already in, just skip the -r flag and remv will gladly ignore directories.
5. is fixed as well (new flag "-E").

22
N.A.N.Y. 2019 / Re: N.A.N.Y. 2019: The Decision Sieve
« on: January 07, 2019, 01:30 PM »
Updated, gladly ignoring the Internet Explorer.  :P

23
N.A.N.Y. 2019 / Re: N.A.N.Y. 2019 Begins
« on: January 07, 2019, 01:01 PM »

24
1. Yes, thank you.
2.  :huh: I'll check that.
3. If you use invalid variables, that's not my fault.  :D
4. The possibility to include relative folder paths (to move whole structures) is actually a feature. How would you do that?
5. File extensions are technically not a separate part of a file name. Handling files with multiple endings (.tar.gz) could be tricky...

Note that I'll have to fix the Decision Sieve first anyway, so take the above comments as temporary ideas.  ;D

25
N.A.N.Y. 2019 / Re: N.A.N.Y. 2019: The Decision Sieve
« on: January 07, 2019, 01:43 AM »
No, it actually is untested.  ;)

Pages: [1] 2 3 4 5 6 ... 85next