Компьютерный портал
| Расширенный
! Важно: Официальная программа бесплатного обновления до Windows 10
! Важно: Winaero Tweaker - незаменимый инструмент для настройки Windows
обработке файлов, имена которых содержат НЕКОТОРЫЕ ASCII символы
Страница 1 из 11
Модератор форума: Barmenchik, Drinko, V-Efremov, sander23 
Компьютерный форум » Операционные системы » Windows 10 » Вниманию читателей, использующих PShell: обнаружена проблема при (обработке файлов, имена которых содержат НЕКОТОРЫЕ ASCII символы)
Вниманию читателей, использующих PShell: обнаружена проблема при
sysprg
Отредактировано sysprg - 29.10.2017, 21:12
Аватар sysprg

Почетный

Сообщений: 3383

Речь идет о символах, использование которых в среде 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

Компьютерный форум » Операционные системы » Windows 10 » Вниманию читателей, использующих PShell: обнаружена проблема при (обработке файлов, имена которых содержат НЕКОТОРЫЕ ASCII символы)
Страница 1 из 11
Поиск:
Windows 10
Windows 8.1
Популярное
Опрос
Нравятся ли вам изменения произошедшие в Windows 10?
Всего ответов: 7554

Статистика Форума
Последние обновления тем
Популярные темы
Новые пользователи
[21.02.2018|20:18]
[21.02.2018|19:09]
[21.02.2018|13:10]
[21.02.2018|12:24]
[21.02.2018|11:55]
[21.02.2018|10:37]
[21.02.2018|09:29]
[21.02.2018|08:21]
[21.02.2018|07:58]
[21.02.2018|03:08]