Я пытаюсь переместить кучу файлов из каталога Windows в общую папку, мне нужно переименовать имена файлов и каталогов, которые не разрешены в целевой файловой системе.
Большая часть того, что мне нужно было сделатьзадача, которую я нашел здесь: Замена всех # в именах файлов во всех подпапках в Windows
Get-ChildItem -Filter "*`#*" -Recurse |
Rename-Item -NewName {$_.name -replace '#','No.' } -Verbose
Решение, предоставленное evilSnobu, сработало как прелесть для этих символов ~, #,%, &
Другие символы, не разрешенные на sharepoint, предположительно: +, *, {,}, \,:, <,>,?, /, |, «
Я не уверен точно, какиеВо-первых, они разрешены в исходной файловой системе Windows, но "+" - это, и, очевидно, многие имена файлов содержат этот символ.
Для тех, кто получает ошибку из PowerShell, говоря, что она делает недействительнымрегулярное выражение.К сожалению, это верно для использования символа или его выделения с помощью эквивалентного кода ASCII.
Get-ChildItem -Filter "*`+*" -Recurse |
>> Rename-Item -NewName {$_.name -replace '+','_' } -Verbose
К сожалению, это не работает.Есть идеи, как с этим бороться?
Спасибо, Тим