Речь идет о символах, использование которых в среде Windows ДОПУСТИМО для NTFS, ReFS. К примеру символы [, ]. На cmd.exe консоли легко можно создать скажем файл с именем "a[b]c.txt:
Код
a:\@FUN>echo "a[b]c.txt file content">"a[b]c.txt"
a:\@FUN>type a[b]c.txt
"a[b]c.txt file content"
a:\@FUN>
Но вот, как файлы с такими именами обрабатывает PShell:
Код
PS E:\@Projects\BuildsHistory\@ProWS-RS4> "a[b]c.txt file content" | set-content "a[b]c.txt" -encoding unicode
Set-Content : A parameter cannot be found that matches parameter name 'encoding'.
At line:1 char:52
+ "a[b]c.txt file content" | set-content "a[b]c.txt" -encoding unicode
+ ~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Set-Content], ParameterBindingException
+ FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.SetContentCommand
PS E:\@Projects\BuildsHistory\@ProWS-RS4> "a[b]c.txt file content" > "a[b]c.txt"
out-file : Cannot perform operation because the wildcard path a[b]c.txt did not resolve to a file.
At line:1 char:1
+ "a[b]c.txt file content" > "a[b]c.txt"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OpenError: (a[b]c.txt:String) [Out-File], FileNotFoundException
+ FullyQualifiedErrorId : FileOpenFailure,Microsoft.PowerShell.Commands.OutFileCommand
PS E:\@Projects\BuildsHistory\@ProWS-RS4> get-item a:\"@FUN\a*.txt"
Directory: A:\@FUN
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2017-10-29 20:21 27 a[b]c.txt
PS E:\@Projects\BuildsHistory\@ProWS-RS4> $data = get-content a:\"@FUN\a*.txt"
PS E:\@Projects\BuildsHistory\@ProWS-RS4> $data
"a[b]c.txt file content"
PS E:\@Projects\BuildsHistory\@ProWS-RS4>
Невозможно ни переименовать файл "a[b]c.txt", ни удалить. Так что для выполнений этих действий приходится из PShell-скрипта запускать cmd.exe /c для выполнения команд переименования или удаления подобных файлов. Описанную проблему обнаружил СЛУЧАЙНО: ежу ясно, что никакому НОРМАЛЬНОМУ человеку не придет в голову создавать файл с именем a[b]c.txt. Но к большому сожалению об этом нисколько не задумываются те, кто сканирует книги и выкладывает на Флибусту файлы с именем Брюсов_Валерий.За_себя_или_за_другую?_.fb2.zip, Chuvstvo i chuvstvitiel'nost' [Razum i c - Dzhiein Ostien.zip