Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - tonilogar

#51
Noooo me estoy equivocando, quieto parado.
Los ficheros me los renombrar correctamente, y me los coloca en el mismo directorio del fichero VBS.
Lo único que falta es que le ponga la dirección correcta, donde quiero los ficheros renombrados.
#52
Cuando solo pongo un fichero para probar:
80123456_100.msk me lo borra

pero si pongo 2
80123456_100.msk
80123457_100.msk
Creo que a los dos ficheros le pone el mismo nombre por eso sale el error de que el fichero ya existe ¿norrr?
#53
Line : 6
Char: 1
error ; File already exist
code: 800A003A
#54
Gracias por tu ayuda eres un rayo.

Pues no se lo que escribo mal pero me peta.

Set fso = CreateObject("Scripting.FileSystemObject")
Set carpeta = fso.GetFolder("C:\")
For Each archivo in Carpeta.Files
if len(Archivo.name)=16 then
fso.MoveFile archivo.path, replace(archivo.name, "_100.msk", ".msk")
end if
next

#55
Antes de nada agradecer a todos los integrantes del foro,por toda la información y conocimiento que he podido utilizar, para poder ir aprendiendo un poco de VBScript.

Pues tengo un problema, en medio de un script que estoy haciendo, no se como renombrar un grupo de ficheros.

Si no a quedado muy clara la cosa leete la parrafada de abajo...tampoco es tan larga.

Los ficheros son un un nombre de 8 dígitos(que son numeros)+_100+ extension(.msk)

Ejemplo:80123451_100.msk
             80123452_100.msk
             80123453_100.msk
             80123454_100.msk
             80123455_100.msk

La cuestión que renombrar con move es muy fácil:

Set fso = CreateObject("Scripting.FileSystemObject")
fso.MoveFile "c:\80123451_100.msk", "80123451_100.msk"

Pero lo que quiero es quitar *_100* de todos los ficheros.
Sin tener que escribir la relación de cada uno.
Porque normalmente lo tengo que hacer con unos 500 ficheros.
             80123451_100.msk       80123451.msk
             80123452_100.msk       80123452.msk
             80123453_100.msk       80123453.msk
             80123454_100.msk       80123454.msk
             80123455_100.msk       80123455.msk

Lo que pensaba era utilizar un for each:


Set fso = CreateObject("Scripting.FileSystemObject")
Set carpeta = fso.GetFolder(camino)
For Each archivo in Carpeta.Files
if len(Archivo.name)=16  then
fso.MoveFile archivo.path,  archivo.name
end if
next
el problema es que no se como filtrar los nombres para que me sustituya el _100 por nada.

Vamos como se hace en msdos.

Rename 8???????_100.msk 8???????.msk

Es que ya no se que mas probar.

¿Porque la opción replace solo se utiliza para reemplazar texto? ¿No?

¿O se puede utilizar para reemplazar dígitos de un nombre de archivo?

Estoy pensando en que el script me haga un bath automáticamente y ejecutarlo para renombrar los ficheros.
Pero creo que es un poco trampa.
Quiero aprender con vbscript y no hacer un apaño con un bath.

Un saludo a todos y gracias por vuestro tiempo.