Как завершить скрипт powershell после последнего файла в директории - PullRequest
0 голосов
/ 05 июля 2019

Сценарий Powershell запускается для добавления буквы М перед всеми именами файлов.Затем он продолжает цикл после изменения последнего файла и добавляет дополнительные MMMM перед именем файла в цикле.Мне нужно, чтобы он остановился после первого запуска всех файлов в каталоге.

Я пробовал эти три версии.Первый с пробелом перед M переименовывает все файлы один раз, но оставляет лишний пробел перед именем, если я смогу избавиться от пробела, это было бы то, что мне нужно:

DIR | Rename-Item -NewName {" M" + $_.BaseName + $_.Extension}

Этоверсия не имеет дополнительного пространства перед M, но продолжает добавлять MMMM, пока имя файла допускает больше символов.

DIR | Rename-Item -NewName {"M" + $_.BaseName + $_.Extension}

Я также попытался поместить букву в качестве параметра и использовать Foreach и получилте же результаты, что и для буквы M в первых двух версиях:

$AL = "M"
Foreach-Object {
    DIR | Rename-Item -NewName {$AL + $_.BaseName + $_.Extension}
}

Мне нужны файлы, переименованные в M перед именем, один раз и без дополнительного пробела.Спасибо.

1 Ответ

2 голосов
/ 05 июля 2019
$FileList = Get-ChildItem
$FileList | Rename-Item -NewName {"M" + $_.BaseName + $_.Extension}

Должен сделать свое дело. Разница между этим и вашим оригиналом заключается в том, что ваш оригинал получал динамический список файлов; сохраняя список файлов в переменной, он становится статическим, поэтому уже переименованные файлы не добавляются в список для обработки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...