Просто чтобы уточнить, что вы делаете:
Это ваш код:
Get-ChildItem -Path C:\Users\F1 -File |
ForEach-Object { Copy-Item -Path $_.FullName -Destination "C:\Users\F1\$($_.BaseName).TXT" }
}
Get-ChildItem -Path C:\Users\F1 -File
получает каждый -File
в -Path C:\Users\F1
.
| ForEach-Object {}
будет делать что-то с каждым элементом , который вернула прежняя строка.
Copy-Item ... -Destination "C:\...\$($_.BaseName).TXT"
скопирует элемент $_
(который является текущим объектом, который обрабатывается) и переименует его $($_.BaseName).TXT
,Это (очевидно) BaseName
+ .TXT
.
Так что да, вы переименовываете их всех за один шаг.Если вы хотите обработать предметы, вы должны сделать это внутри ForEach-Object {}
-блока.Если вы хотите переименовать их по отдельности, вы должны как-то отфильтровать их с помощью операторов if
внутри ForEach-Object {}
-блока или перед тем, как направить (|
) их в ForEach-Object {}
-блок.