Me ha llegado un trabajo donde el cliente me da unos archivos en PDF nombrados con una referencia de la siguiente forma «001-01-02.pdf». Los PDF son 200 archivos con ese mismo formato de referencia.
En Excel estamos añadiendo rangos de celdas, y esto nos impide poner en la referencia el simbolo «-«. Como debo ir copiando y pegando este nombre, debo reemplazar el nombre de todos los archivos de la carpeta con el mismo nombre pero cambiando «-» por «_», que los rangos de Excel si aceptan. El nombre de la referencia debe quedar así «001_01_02.pdf».
Para ello vamos a crear un pequeño script en VBS. Creamos un nuevo archivo con Notepad, en mi caso utilizo «Notepad++». En el nuevo archivo pondremos el siguiente código:
Set objFso = CreateObject("Scripting.FileSystemObject")
Set Folder = objFSO.GetFolder("C:\mi_carpeta\")
For Each File In Folder.Files
sNewFile = File.Name
sNewFile = Replace(sNewFile,"-","_")
if (sNewFile<>File.Name) then
File.Move(File.ParentFolder+"\"+sNewFile)
end if
Next
En la linea 2 indico la carpeta donde quiero hacer el cambio y en la linea 6 el caracteres que busco («-«) y por cual lo reemplazo («_»).
Ahora guardo el archivo con la extensión .vbs, en mi caso le he llamado «reemplazar_caracter.vbs».
Acto seguido ejecuto el archivo desde el explorador de archivos de Windows y listo, reemplazará todos los caracteres «-» por «_» en los 200 archivos.
NOTA: Si queremos hacer lo mismo con carpetas hay que poner ‘Folder.SubFolders’ en lugar de ‘Folder.Files’.
Como se ejecuta?