Me gustaría cambiar el nombre de todos los archivos en una carpeta a su valor SHA1 HASH.
Tengo una utilidad de línea de comandos que puedo usar "sha1.exe -s"
para hacer eco del valor SHA1 Hash, pero necesito cambiar el nombre de todos los archivos en esa carpeta para que coincida (sin extensión).
Esencialmente, me gustaría que funcionara así:
rename file.exe (sha1.exe -s file.exe)
En la práctica resulta algo como esto:
forfiles /p E:\software\sha1 /c "cmd /c rename @file (sha1.exe -s @file)"
Estoy abierto a usar otros recursos como Powershell si eso es lo que se requiere.
Agradezco cualquier ayuda!
windows
command-line
powershell
Craysh
fuente
fuente
No estoy familiarizado con un
forfiles
comando, ni con una/P
opción parafor
comandos similares que conozco, así que supongo queE:\software\sha1
es un archivo de texto que enumera los archivos en los que desea operar, una ruta por línea.o si lo estás escribiendo a mano:
fuente
/P
opción acepta un directorio para obtener el listado para operar. Entonces, si reemplazasGet-Content
conGet-ChildItem
, eres dorado.El marco .Net tiene características de hashing incorporadas. Aquí se explica cómo hacerlo en PowerShell sin utilizar utilidades adicionales.
Por ejemplo, para cambiar el nombre de todos los archivos en c: \ temp, ejecute el comando:
fuente