Principales respuestas
Script renombrar ficheros

Pregunta
-
Hola Buenas tardes
Necesitaria vuestra ayuda para crear un script que renombrar ficheros en directorios y subdirectorios
Ahora los fichero tienes 20 digitos ejemplo
00000000000000000010.txt
00000000000000000100.txt
00000000000000003000.txt
00000000000000003500.txt
Necesito sumarle 300 a cada fichero para que quedaran asi
00000000000000000310.txt
00000000000000000400.txt
00000000000000003300.txt
00000000000000003800.txt
Cual seria la mejor forma de hacerlo, son millones de fichero
Muchas gracias de antemano
Saludos
Respuestas
-
Hola Iniabele,
Podrías hacerlo así:
Clear-Host $FilePath = "C:\Temp\Test" #Ruta donde están tus ficheros $Files = Get-ChildItem $FilePath ForEach ($Item in $Files) { [string]$Name = $Item.BaseName [int]$NewNameValue = [int]$Name + 300 [String]$NewName = '{0:d20}' -f [int]$NewNameValue Write-Output "$Name se renombra a: $NewName" Rename-Item $Item.FullName -NewName $NewName }
Está sin probar, por lo que te recomiendo que primero hagas pruebas en un pequeño directorio controlado para verificar que no se me pasó por alto nada al escribirlo.
Espero que te sirva.Un saludo.
Diego
- Marcado como respuesta Iniabele jueves, 21 de mayo de 2020 21:36
Todas las respuestas
-
Hola Iniabele,
Podrías hacerlo así:
Clear-Host $FilePath = "C:\Temp\Test" #Ruta donde están tus ficheros $Files = Get-ChildItem $FilePath ForEach ($Item in $Files) { [string]$Name = $Item.BaseName [int]$NewNameValue = [int]$Name + 300 [String]$NewName = '{0:d20}' -f [int]$NewNameValue Write-Output "$Name se renombra a: $NewName" Rename-Item $Item.FullName -NewName $NewName }
Está sin probar, por lo que te recomiendo que primero hagas pruebas en un pequeño directorio controlado para verificar que no se me pasó por alto nada al escribirlo.
Espero que te sirva.Un saludo.
Diego
- Marcado como respuesta Iniabele jueves, 21 de mayo de 2020 21:36
-
-
-
Hola,
Lo corrijo para que no borre la extensión:
Clear-Host $FilePath = "C:\Temp\Test" $Files = Get-ChildItem $FilePath ForEach ($Item in $Files) { [string]$Name = $Item.BaseName [int]$NewNameValue = [int]$Name + 300 [String]$NewName = '{0:d20}' -f [int]$NewNameValue $NewName += ".txt" Write-Output "$Name se renombra a: $NewName" Rename-Item $Item.FullName -NewName $NewName }
Me alegro que te sirviera.
Un saludo.
Diego