Команда PS для пакетного переименования файлов в одной папке работает для всех файлов, в которых нет пары квадратных скобок, но никогда, если имя файла содержит ее.Это также работает, если в имени указана одна или несколько правых квадратных скобок, но любое количество левых скобок приводит к ошибке.
Комментарий об ошибке: rni: Невозможно выполнить задание положения'empposition «C: \ Users \ X \ Documents \ dossier \ machine [3] .txt», car il n'existe pas.
перевод _ rni: невозможно переименовать элемент, найденный в «C: \ Users \ X \ documents \ dossier \ machine [3] .txt », так как он не существует.
Вот код команды;
$dos1=(ls C:\Users\X\documents\dos1).name
foreach ($fic in $dos1)
{rni C:\Users\X\documents\dos1\$fic §§$fic}
Пользователь PetSerAI предложение вставить "-LiteralPath" прекрасно работает в данном случае;
$dos1=(ls C:\Users\X\documents\dos1).name
foreach ($fic in $dos1)
{rni -literalpath C:\Users\X\documents\dos1\$fic §§$fic}
Тем не менее, для несколько более сложного кода такая же проблема повторяется;«-LiteralPath» не имеет ожидаемого эффекта в следующем коде;
$dos1=(ls C:\Users\X\documents\dos1).name
$dos2=(ls C:\Users\X\documents\dos2).name
foreach ($fic2 in $dos2) {foreach ($fic1 in $dos1)
{if ("$fic1" -match "$fic2") {rni -literalpath C:\Users\X\documents\dos1\$fic1 §§$fic1}}}
Хуже того, переименование происходит по крайней мере для одной пары непохожих имен:
" §§§§§§§§Machine 5.txt"," machine 5.txt".
Есть ли способ заставить это работать без слишком большого дополнительного кодирования?