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ú

Temas - tonilogar

#1
Scripting / Pasar if de c++ a bat
1 Diciembre 2016, 18:23 PM
Tengo este pequeño codigo en c++
Código:
Código (cpp) [Seleccionar]

   double xe=10;
   double xo=2;
   double yn=10;
   double ys=2;

   double xe1=0;
   double xo1=2;
   double yn1=11;
   double ys1=0;

   if (!(xo1 > xe || xe1 < xo || yn1 < ys || ys1 > yn) )
   {
     qDebug()<<"Hay pixels dentro de la imagen origen";
   }
   else
  qDebug()<<"No Hay pixels dentro de la imagen origen";


Y me estoy dando cabezazos para poder utilizarlo en un bat, pero no logro hacerlo.
¿Es posible trabajar con este código de forma similar en bat?

Un saludo y gracias por vuestro tiempo


Mod: Los códigos deben ir en etiquetas GeSHi
#2

Necesito hacer un "contenedor" de variables string o char* y que se puedan ir introduciendo las variable una a una con getline, y que las variables no se duplique si se entra la misma variable por error.

Y otro "contenedor" en que las variables serán el contenido de un directorio

Estaba empollandome los vectores para crear los contenedores y después utilizar las herramientas de comparación.

Pero por un lado me recomiendan que utilice deque y por otro que utilice los map.
¿Que me recomendáis para crear este tipo de "contenedores" vectores deque mapas ?????
¿Otro método?

Un saludo y gracias por vuestro tiempo.
#3
En esta aplicación, entro un dato con  getline  y utilizo el tipo de variable string por si el nombre tiene espacios.

Hay alguna forma de detectar si el fichero existe o no, con una variable del tipo string.

Parecido a como se hace con el variables de tipo char*.



Código (cpp) [Seleccionar]

int main ()

{

 char * Imagen;

 int com;

   cout <<  endl;

   cout <<  endl;

   cout << "selecciona imatge a transformar";

   cout <<  endl;

   cout <<  endl;

   cin >> Imagen;

   cout <<  endl;



cout <<  Imagen;

   ifstream fich (Imagen, ios::in | ios::binary);

   com=(fich.good());

   cout <<  endl;



   if (com==0) cout <<  "La imagen no existe";

   else cout <<  "La imagen existe";

   cin.get();

}




O con el open de ifstream



Un saludo a todos y gracias por vuestra ayuda.
#4
Este es el código de error que aparece, cuando intento añadir una función al código.

K:\programacion\c++\pepeluis03\pepeluisFuente.cpp||In function 'int main()':|
K:\programacion\c++\pepeluis03\pepeluisFuente.cpp|13|error: 'EntraDatos' was not declared in this scope|
||=== Build finished: 1 errors, 0 warnings ===|


Función que quiero añadir:
Código (cpp) [Seleccionar]

void EntraDatos()
{

//Variable de función
string fichero;

do
{
cout << "entra datos";
cout << endl<< endl;
getline (cin,fichero);

}
while (fichero.length()!=0);//Cuando fichero sea diferente a 0 sigue preguntando


[color=navy]He creado la función por separado con el fichero header:[/color]

#include <iostream>
#include <string>
#include <fstream>
using namespace std;

void EntraDatos();

[color=navy]Con el fichero de las funciones.[/color]#

include <iostream>
#include <string>
#include <fstream>
#include <K:\programacion\c++\pepeluis03\pepeluis.h>
using namespace std;

void EntraDatos()
{
//Variable de función
string fichero;

do
{
cout << "entra datos";
cout << endl<< endl;
getline (cin,fichero);

}
while (fichero.length()!=0);//Cuando fichero sea diferente a 0 sigue preguntando

[color=navy]Y el fichero con la función main:[/color]


#include <iostream>
#include <string>
#include <fstream>
using namespace std;
#include <E:\usuaris\a.lopez.g\programacion\c++\pepeluis03\pepeluis.h>



int main()
{

EntraDatos();


cin.get();
return 0;
}


De esta forma la función me funciona "valga la redundancia" correctamente.

Pero cuando la inserto en este código me sale el error antes comentado.



Fichero Header:
//pepeluis.h


Código (cpp) [Seleccionar]
#include <iostream>
#include <string>
#include <fstream>
using namespace std;

string MenuPreguntas();

string ConversorImagenes();

string ImagenesTransformar();

void EntraDatos();

[color=navy]Fichero de funciones:
//pepeluis.cpp[/color]

#include <iostream>
#include <string>
#include <fstream>
using namespace std;

//CUERPO DE FUNCION/////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////

string MenuPreguntas()
{
//VARIABLES DE FUNCION/////////////////////////////////////////////////////////////////////////
string Elegir;


   while (Elegir!="1" && Elegir!="2" && Elegir!="3" && Elegir!="4" && Elegir!="5" && Elegir!="q") {
cout << endl << endl;
       cout << "-----TRIAR SOFTWAREA A UTILITZAR" << endl << endl;
       cout << "1: Conversor d'imatges" << endl<< endl;
       cout << "2: Crear, tallar mosaics" << endl<< endl;
       cout << "3: Buscar, renombrar, copiar, esborrar, moure fitxers" << endl<< endl;
cout << "4: Mapa de diferencies" << endl<< endl;
cout << "5: Treballar amb canals" << endl<< endl;
cout << "Q: Sortir de l'aplicacio" << endl<< endl;
       cout << "Seleciona opcion :"<< endl<< endl;
       cin >> Elegir;
   if (Elegir == "Q") Elegir="q"; //Si la opcion elegida es Q(mayuscula) pasarla a q(minuscula).

else if (Elegir!="1" && Elegir!="2" && Elegir!="3" && Elegir!="4" && Elegir!="5" && Elegir!="q") cout << endl << "-----LA SELECCIO ES ERRONEA";
}
cout<< endl;
cout<< endl;
return Elegir;
}




//CUERPO DE FUNCION/////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////

string ConversorImagenes()
{
//VARIABLES DE FUNCION/////////////////////////////////////////////////////////////////////////
string Elegir;


   while (Elegir!="1" && Elegir!="2" && Elegir!="3"&&  Elegir!="a" && Elegir!="q") {
cout << endl << endl;
cout << "-----coversor .RF .TIF .JPG" << endl << endl;
       cout << "-----TRIAR OPCIO" << endl << endl;
       cout << "1: Seleccionar imatges" << endl<< endl;
       cout << "2: Seleccionar llistat d'imatges" << endl<< endl;
cout << "3: Seleccionar directori on es troben les imatges a transformar" << endl<< endl;
cout << "A: Tornar al menu anterior" << endl<< endl;
cout << "Q: Sortir de l'aplicacio" << endl<< endl;
       cout << "Seleciona opcion :"<< endl<< endl;
       cin >> Elegir;
   if (Elegir == "Q") Elegir="q"; //Si la opcion elegida es Q(mayuscula) pasarla a q(minuscula).
else if (Elegir == "A") Elegir="a"; //Si la opcion elegida es A(mayuscula) pasarla a a(minuscula).
else if (Elegir!="1" && Elegir!="2" && Elegir!="3" && Elegir!="a" && Elegir!="q") cout << endl << "-----LA SELECCIO ES ERRONEA";
}
cout<< endl;
cout<< endl;
return Elegir;
}



//CUERPO DE FUNCION/////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////
void EntraDatos()
{


//VARIABLES DE FUNCION/////////////////////////////////////////////////////////////////////////
string fichero;


do
{
cout << "entra datos";
cout << endl<< endl;
getline (cin,fichero);

}
while (fichero.length()!=0);

}


Fichero de la función main:

pepeluisFuente.cpp


Código (cpp) [Seleccionar]

#include <iostream>
#include <string>
#include <fstream>
#include <K:\programacion\c++\pepeluis02\pepeluis.h>
using namespace std;
string VariableMenuPreguntas;
string VariableConversorImagenes;



int main()
{
EntraDatos();
VariableMenuPreguntas=MenuPreguntas();

if (VariableMenuPreguntas == "1") VariableConversorImagenes=ConversorImagenes();
else if (VariableMenuPreguntas == "2") cout << "VariableMenuPreguntas 2";
else if (VariableMenuPreguntas == "3") cout << "VariableMenuPreguntas 3";
else if (VariableMenuPreguntas == "4") cout << "VariableMenuPreguntas 4";
else if (VariableMenuPreguntas == "5") cout << "VariableMenuPreguntas 5";



if (VariableConversorImagenes == "1") cout << "VariableConversorImagenes 1";
else if (VariableConversorImagenes == "2") cout << "VariableConversorImagenes 2";
else if (VariableConversorImagenes == "3") cout << "VariableConversorImagenes 3";
else if (VariableConversorImagenes == "4") cout << "VariableConversorImagenes 4";
else if (VariableConversorImagenes == "5") cout << "VariableConversorImagenes 5";
else if (VariableConversorImagenes == "a") cout << "VariableConversorImagenes a";


return 0;

}


He probado mil triquiñuelas y no se que es lo que pasa, según el error la función no está declarada ¿norrrrr?

Un saludo y gracias por vuestro tiempo.
#5
Un saludo de nuevo a todos los integrantes del foro, después de un tiempo empollando c++.


Pues con este código lo único que quiero es recoger un string incluyendo los espacios y para eso utilizo getline.

El problema es que cuando escribo el dato tengo que pulsar dos returns en lugar de una vez,  como funciona cin.
Si no me equivoco, el problema es que el getline después de los datos de entrada , siempre pone al final /n.
Y /n se tiene que borrar con ignore.

Pero no consigo hacerlo.
¿Estoy en lo cierto en lo referente a '/n? o ¿porque razón hay que teclear dos veces a return.?
¿O es mejor utilizar otra forma para recoger variables string con espacios?
Código (cpp) [Seleccionar]

#include <iostream>
#include <string>
using namespace std;
int main()
{

string fichero;


cout << "entra datos";
cout << endl<< endl;
getline (cin,fichero);

cout << endl<< endl;



cout << fichero << "   numero de caracteres";
cout << endl<< endl;
cout << fichero.length();
cout << endl<< endl;
cout << fichero.capacity();
cout << endl<< endl;
cout << fichero.size();
cout << endl<< endl;

return 0;
}

Un saludo y gracias por vuestro tiempo.

#6
Antes de nada,  feliz entrada de año a todos.

He empezado a tocar las ventanas graficas de QT y pensaba que para trabajar con Qt y python siempre tenia que exportar el fichero *-ui a *.py. con pyuic.

Pero mirando el manual python no muerde, en el cual importan los ficheros *.ui directamente.
Me asalta una duda:
¿Alguno de los dos métodos tiene alguna ventaja?

Un saludo y gracias por vuestro tiempo.
#7
Quiero hacer una lista con los datos de un fichero *.txt
Los únicos datos que me interesan son los dígitos del 2 al 10 de cada linea (los que están en negrita).

Pero la primera linea del fichero no me interesa.
¿Como se salta una linea?...
Tengo entendido que es con "\n"....pero he intentado todas las combinaciones inimaginables y na de na.

Este es el contenido del txt:

(I10,X,A)                          

81680775 2009242021570722HR4.tif                          

 81680773 2009242021570721HR4.tif                          

 81680771 2009242021570720HR4.tif                          

 81680769 2009242021570719HR4.tif                          

 81680767 2009242021570718HR4.tif



Código (python) [Seleccionar]
#Creo una lista vacía
lista_iad=[]

#Abro el fichero y añado a la lista_iad
>>> with open("bloc5C.iad",encoding="utf-8") as fichero_iad:
for line in fichero_iad:
lista_iad.append(line[2:10]+".msk")

>>> lista_iad
['10,X,A) .msk', '81680775.msk', '81680773.msk', '81680771.msk', '81680769.msk', '81680767.msk']



Un saludo y gracias por vuestro tiempo.
#8
Dentro de mi script vbs ejecuto un .exe, que me habre una consola de msdos y me va pidiendo datos.
¿Como puedo entrar esos datos desde el script vbs, a la ventana de msdos.
Un saludo y gracias por vuestro tiempo.
#9
Un saludo a todos de nuevo.
He echo un pequeño script, y lo primero que hace es abrir una ventana para seleccionar un directorio.
La pregunta es.
¿Hay forma de ejecutar el scrip y la ventana se  habrá en el ultimo directorio que seleccione?

Código (vb) [Seleccionar]
Set fso = CreateObject("Scripting.FileSystemObject")
Set ws = CreateObject("WScript.Shell")
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(0, "SELECCIONEU UN DIRECTORI:", 0, 0)
If objFolder Is Nothing Then
MsgBox("L'aplicacio s'ha cancelat")
Wscript.Quit
    else
        FolderExists = fso.FolderExists (objFolder.self.path )
    end if


Un saludo y gracias por vuestro tiempo.
#10
Scripting / (Python/Tk) ocultar "marco ventana" tk
29 Noviembre 2009, 01:08 AM
Un saludo de nuevo a todos.
Pues estoy peleando me con las ventanas gráficas TK Tkinter que vienen con python.
Pero cuando utilizo los standard dialog:
showwarning
showinfo
showerror
askyesno
askokcancel
askretrycancel
askopenfilename
asksaveasfilename
askcolor
Siempre me sale detrás del standard dialog un ""marco ventana".
Si ejecutáis este ejemplo me entenderéis mejor.


from Tkinter import *
import tkMessageBox
from tkFileDialog   import askopenfilename
from tkFileDialog   import asksaveasfilename
from tkColorChooser   import askcolor
tkMessageBox.showwarning("Warning","No ha definido un sentido de giro")
tkMessageBox.showinfo("Warning","No ha definido un sentido de giro")
tkMessageBox.showerror("Warning","No ha definido un sentido de giro")
tkMessageBox.askyesno("Warning","No ha definido un sentido de giro")
tkMessageBox.askokcancel("Warning","No ha definido un sentido de giro")
tkMessageBox.askretrycancel("Warning","No ha definido un sentido de giro")
askopenfilename()
asksaveasfilename()
askcolor()

Y dejo una imagen para que se entienda mejor.

http://img33.imageshack.us/i/ventanastk.jpg/][img=http://img33.imageshack.us/img33/8458/ventanastk.th.jpg][/url]

Un saludo y gracias por vuestro tiempo.
#11
Pues la cuestión es que estaba aprendiendo VBscript.
Pero como el programa que mas uso es el blender, pensé en meterme con python.

El tema es, he estado leyendo manuales de python, pero no veo la equivalencia de el msbox o el inputbox de VBscript.
¿Se pueden generar ventanas para entrar y recoger datos en python?
Y si la respuesta es afirmativa.
Algún link donde se hable del tema.
Yo por el momento no he encontrado ninguno y un amigo que programa en python dice que se puede.
Un saludo y gracias por vuestro tiempo.
#12
Pues este script me funciona correctamente, hasta que al final quiero borrar ficheros txt creados por el scrip y que al final no me sirven.
Pero me da un error y me dice que:
permission denied
800A0046
Porque no tengo permiso para borrarlo cuando los he creado los he cerrado.

Despues con el mismo codigo pero en un script diferente me los borra sin problemas.


Código (vb) [Seleccionar]
Set fso = CreateObject("Scripting.FileSystemObject")
Set ws = CreateObject("WScript.Shell")
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(0, "SELECCIONEU EL DIRECTORI ORTOFOTO:", 0, 0)
If objFolder Is Nothing Then
MsgBox("L'aplicacio s'ha cancelat")
Wscript.Quit
End If
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'CREAR UN ARCHIVO txt en donde se encuentran las ortofotos
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Set var = fso.CreateTextFile(objFolder.self.path & "\variableobjFolder.self.path.txt", True)
var.writeline(objFolder.self.path)
var.close
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'crear un txt para despues editarlo
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Set ar = fso.CreateTextFile(objFolder.self.path & "\ortofotos-que-faltan.txt", True)
ar.writeline(objFolder.self.path)
ar.close
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'leer la ruta donde se encuentran las ortofotos
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Set ar = fso.OpenTextFile(objFolder.self.path & "\variableobjFolder.self.path.txt", 1)
linea=ar.Readline
pos=instrrev(linea,"\")
nlinea=left(linea,pos-1)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'crear u txt con todas las ortos del bloque a partir de los ficheros *ferfull
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Set car = fso.GetFolder(nlinea)
Set listadoORTOFOTOS= fso.CreateTextFile(objFolder.self.path & "\llistat-ortofotos.txt", True)
For Each archivo in car.Files
If right(archivo.name,12)="_FerFull.bat" then
listadoORTOFOTOS.writeline (archivo.name)
End If
Next
listadoORTOFOTOS.close
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'comparar el fichero llistat-ortofotos con las ortos que hay en el directorio ortofoto
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Set var = fso.OpenTextFile(objFolder.self.path & "\llistat-ortofotos.txt", 1)
Do
linea=var.Readline
nombreArchivo=mid(linea,1,7)
FileExists=fso.FileExists (objFolder.self.path& "\" &nombreArchivo& "_S.rf")
if FileExists=FALSE Then
Set arc = fso.GetFile (objFolder.self.path & "\ortofotos-que-faltan.txt")
Set arc = arc.OpenAsTextStream(8)
arc.Writeline nombreArchivo & "_S.rf"
End if
loop until var.AtEndOfStream=True
arc.close
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'abrir el fichero ortofotos-que-faltan.txt
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
msgbox ("Aquestes son les ortofotos que no es tronben al directori indicat")
ws.Run (objFolder.self.path & "\ortofotos-que-faltan.txt")
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'borara los ficheros intermedios
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
fso.DeleteFile objFolder.self.path & "\llistat-ortofotos.txt", True
fso.DeleteFile objFolder.self.path & "\variableobjFolder.self.path.txt", True



Nota del mod: recuerda las etiquetas
#13
En este script doy la dirección de una carpeta y lo que necesito es la direccion de la carpeta anterior a la ultima.
Mexplico: doy la dirección:
L:\programacion\FICHEROS-FERFULL\ortofoto
y quiero la dirección:
L:\programacion\FICHEROS-FERFULL
como no se como hacerlo pues he creado un txt con la dirección y despues quiero leer la linea de derecha directorioFerFull=right(linea,9)="\ortofoto"

Pero mi sorpresa es que utilizando un msgbox.
msgbox (directorioFerFull)
el msgbox me devuelve true....y no:
L:\programacion\FICHEROS-FERFULL
que es lo que yo esperaba.
Pues eso hay alguna forma de hacerlo mas facil y si no es el caso porque no me lee la linea de texto y me devuelve true.



Aqui dejo el trozo del script.
Un saludo a todos


Set fso = CreateObject("Scripting.FileSystemObject")
Set ws = CreateObject("WScript.Shell")
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(0, "SELECCIONEU EL DIRECTORI ORTOFOTO:", 0, 0)
If objFolder Is Nothing Then
MsgBox("L'aplicacio s'ha cancelat")
Wscript.Quit
    End If
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'CREAR UN ARCHIVO TXT CON LA RUTA DE LAS ORTOFOTOS
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Set var = fso.CreateTextFile(objFolder.self.path & "\variableobjFolder.self.path.txt", True)
var.writeline(objFolder.self.path)
var.close
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'LEER LA RUTA DE ORTOFOTO PARA CONSEGUIR LA DIRECCION DE LOS FICHERO 'FERFULL
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Set var = fso.OpenTextFile(objFolder.self.path & "\variableobjFolder.self.path.txt", 1)
linea=var.Readline
directorioFerFull=right(linea,9)="\ortofoto"
msgbox (directorioFerFull)

#14
Por ejemplo, en vez de decirle al msg.popup el tiempo que tiene que estar visible,hay alguna forma de decirle que este visible, de una accion a otra.

copiar ficheros
msg.popup "Copiando ficheros",
aplicar accion a ficheros

Un saludo y gracias por vuestro tiempo
#15
Pues tengo unos cuantos vbScript en los que utilizo el inputbox, para entrar las direcciones necesarias para el script.
Y hoy mismo he leído sobre el CommonDialog.

Por lo que he leído y probado esta herramienta solo se puede utilizar para seleccionar ficheros. ¿hay alguna forma de utilizarlo para seleccionar directorios?.
En el manual que he leído hablaban sobre el parámetro flags.Ppero no explicaban mucho.
¿Puede ser que con este parámetro pueda modificar el CommonDialog, para tener mas funcionalidades?
#16
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.