Make robocopy regex compatible with languages other than english #23
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I noticed on machines using a system language other than english, the folder sizes when using
-UseRobo
were all returning0
.Looking into it, this was because the
$expectedSummary
regex did not match the output from non-english robocopy versions (yes, unfortunately Microsoft localizes many CLI tools in Windows ...)I adapted the Regex to so that it should handle most languages.
A sample output from german robocopy is:
I replaced all "hardcoded" texts with
[\w\.]+
because the .NET regex engine matches Umlauts as well as other international characters (such as 日本語) with\w
and sometimes robocopy abbreviates long words with a.
(as can be seen in the above example).An example regex to test this is:
'Übereinstimm.日本語' -match '[\w\.]+'
I also defaulted the thred count to the processors available threads, because 16 might be a bit high for some (older) laptops.