PowerShell Rename-Item é looping até arquivo atinge limite de caracteres

votos
1

Eu tenho que mudar o nome, literalmente, milhares de pastas e quer usar um script que adiciona Old na frente do nome antigo.

Eu tentei este script

Get-ChildItem | rename-item -NewName { Old+ $_.Name }

Ele funciona até mesmo quando eu experimentá-lo em algumas pastas de teste pequenas para evitar estragar minha pasta principal, mas unfortunally ele está trabalhando lá, mas não na minha pasta principal. Na minha pasta principal Este comando irá loop até que ele atinge o limite de caracteres e pára.

Se parece com isso:

Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Zimmer.

On-line e encontrei este também, mas produz o mesmo resultado

get-childitem | % { rename-item $_ Old $_}

É um bug ou estou simplesmente estúpido?

Publicado 19/12/2018 em 14:13
fonte usuário
Em outras línguas...                            


1 respostas

votos
1

Para renomear as pastas em um determinado caminho prefixando-los com "Old", isso funciona para mim:

$path = "<PATH TO YOUR MAIN FOLDER>"
Get-ChildItem -Path $path -Directory | Rename-Item -NewName { "Old$($_.Name)" }

# For PowerShell version less than 3.0
# Get-ChildItem -Path $path | Where-Object { $_.PSIsContainer} | Rename-Item -NewName { "Old$($_.Name)" }

(por não definir o parâmetro -Path, o Get-ChildItemcmdlet usa o local padrão, que é o diretório atual .ou $pwd)

Respondeu 19/12/2018 em 14:50
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more