PD: Lo escribí en VBS porque en Batch sería algo muy engorroso y no me gusta perder el tiempo con herramientas deficientes .
Código
' Instancia del objeto 'FileSystemObject'. Set FSO = Createobject("Scripting.FileSystemObject") ' Instancia del objeto 'WScript.Shell'. Set WSS = CreateObject("WScript.Shell") ' Comilla doble, símplemente ara que el código no quede muy feo. Const Quote = """" ' Las semanas GPS del calendario. Weeks = Array(Null, _ 1773, 1774, 1775, 1776, 1777, _ 1778, 1779, 1780, 1781, _ 1782, 1783, 1784, 1786, 1786, _ 1787, 1788, 1789, 1790, _ "Seguir rellenando hasta 1825") ' La semana GPS equivalente a hoy. Week = Weeks(DatePart("ww", Now())) ' Directorio de trabajo. (".\" = El directorio actual) Dir = ".\" ' Iteración de la colección de archivos del directorio de trabajo. For Each File In FSO.GetFolder(Dir).Files ' Nombre base. Name = FSO.GetBaseName(File) ' Nombre base con los últimos 2 caracteres reemplazados. NameFix = Left(Name, Len(Name) - 2) & "0" ' Extension. Ext = FSO.GetExtensionName(File) ' Proceso a ejecutar. Proc = "teqc.exe" ' Argumentos del proceso. Args = " +nav " & Quote & Dir & NameFix & "." & Ext & Quote & _ " -week " & Quote & Cstr(Week) & Quote & _ " -tr d " & Quote & Dir & Name & ".dat" & Quote ' Verificación de la información obtenida. If Msgbox( _ "Proceso: " & VBNewLine & _ Proc & Args & _ VBNewLine & VBNewLine & _ "Output: " & VBNewLine & _ Dir & Name & ".14o", _ 4 or 48, _ "¿Todo Ok?" _ ) = vbNo _ Then Wscript.Quit(1) ' Salida fallida. End If ' Ejecución del proceso. Set Exec = WSS.Exec(Proc & Args) ' Obtención de la salida estándar del proceso. Output = Exec.StdOut.ReadAll ' Escritura de la salida obtenida, en un archivo de texto plano. FSO.CreateTextFile(Dir & Name & ".14o", True).Write(Output) Next Wscript.Quit(0) ' Salida exitosa.
Saludos