elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [batch] OBTENER NOMBRE CON EXTENSION
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: [batch] OBTENER NOMBRE CON EXTENSION  (Leído 8,688 veces)
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.885



Ver Perfil
Re: [batch] OBTENER NOMBRE CON EXTENSION
« Respuesta #10 en: 13 Marzo 2014, 08:11 am »

No se muy bien que quieres ni como lo quieres, pero estoy seguro que este ejemplo que escribí te servirá mucho y podrás adaptarlo a tus necesidades.

PD: Lo escribí en VBS porque en Batch sería algo muy engorroso y no me gusta perder el tiempo con herramientas deficientes :P.



Código
  1. ' Instancia del objeto 'FileSystemObject'.
  2. Set FSO = Createobject("Scripting.FileSystemObject")
  3.  
  4. ' Instancia del objeto 'WScript.Shell'.
  5. Set WSS = CreateObject("WScript.Shell")
  6.  
  7. ' Comilla doble, símplemente ara que el código no quede muy feo.
  8. Const Quote = """"
  9.  
  10. ' Las semanas GPS del calendario.
  11. Weeks = Array(Null, _
  12.              1773, 1774, 1775, 1776, 1777, _
  13.              1778, 1779, 1780, 1781, _
  14.              1782, 1783, 1784, 1786, 1786, _
  15.              1787, 1788, 1789, 1790, _
  16.              "Seguir rellenando hasta 1825")
  17.  
  18. ' La semana GPS equivalente a hoy.
  19. Week  = Weeks(DatePart("ww", Now()))
  20.  
  21. ' Directorio de trabajo. (".\" = El directorio actual)
  22. Dir = ".\"
  23.  
  24. ' Iteración de la colección de archivos del directorio de trabajo.
  25. For Each File In FSO.GetFolder(Dir).Files
  26.  
  27.    ' Nombre base.
  28.    Name = FSO.GetBaseName(File)
  29.  
  30.    ' Nombre base con los últimos 2 caracteres reemplazados.
  31.    NameFix = Left(Name, Len(Name) - 2) & "0"
  32.  
  33.    ' Extension.
  34.    Ext  = FSO.GetExtensionName(File)
  35.  
  36.    ' Proceso a ejecutar.
  37.    Proc = "teqc.exe"
  38.  
  39.    ' Argumentos del proceso.
  40.    Args = " +nav "  & Quote & Dir & NameFix & "." & Ext & Quote & _
  41.           " -week " & Quote & Cstr(Week) & Quote  &               _
  42.           " -tr d " & Quote & Dir & Name & ".dat" & Quote
  43.  
  44.    ' Verificación de la información obtenida.
  45.    If Msgbox( _
  46.               "Proceso: " & VBNewLine & _
  47.               Proc & Args             & _
  48.               VBNewLine   & VBNewLine & _
  49.               "Output:  " & VBNewLine & _
  50.               Dir & Name & ".14o",      _
  51.               4 or 48,                  _
  52.               "¿Todo Ok?"               _
  53.    ) = vbNo                             _
  54.    Then
  55.        Wscript.Quit(1) ' Salida fallida.
  56.    End If
  57.  
  58.    ' Ejecución del proceso.
  59.    Set Exec = WSS.Exec(Proc & Args)
  60.  
  61.    ' Obtención de la salida estándar del proceso.
  62.    Output = Exec.StdOut.ReadAll
  63.  
  64.    ' Escritura de la salida obtenida, en un archivo de texto plano.
  65.    FSO.CreateTextFile(Dir & Name & ".14o", True).Write(Output)
  66.  
  67. Next
  68.  
  69. Wscript.Quit(0) ' Salida exitosa.

Saludos


« Última modificación: 13 Marzo 2014, 09:21 am por Eleкtro » En línea



rochro

Desconectado Desconectado

Mensajes: 42


Ver Perfil
Re: [batch] OBTENER NOMBRE CON EXTENSION
« Respuesta #11 en: 13 Marzo 2014, 15:34 pm »

¿Pero la semana la introducs tu manuálmente?


Por el momento sería así, manualmente, pero lo ideal sería de forma automática. Se que ahora no voy a poder generar ese código para que me salga de forma automática pero por ahora esta bien de manera manual =)

Gracias por todo elektro.


En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.885



Ver Perfil
Re: [batch] OBTENER NOMBRE CON EXTENSION
« Respuesta #12 en: 13 Marzo 2014, 15:57 pm »

de nada

lo ideal sería de forma automática.

Entonces acerté con el código VBS ;), ¿te sirvió?

saludos
En línea



rochro

Desconectado Desconectado

Mensajes: 42


Ver Perfil
Re: [batch] OBTENER NOMBRE CON EXTENSION
« Respuesta #13 en: 13 Marzo 2014, 21:32 pm »

Elektro, estoy agradecida por el apoyo que me brindas. Trato de entender el código que me acabas de alcanzar :D pero creo que en la parte de Weeks(DatePart("ww", Now())) es relacionado con las semanas del año del calendario fijo internacional que es de lunes a domingo (http://www.calendario-365.es/calendario-2014.html) y en el calendario gps es de domingo a sábado.

Como resultado que obtuve al ejecutar el script fue lo siguiente:
1. realiza el procedimiento con todos los archivos en la carpeta raiz y no hace lo mismo con los sub directorios, pero solo tendría que convertir los archivos *.dat
2. al momento de capturar el archivo lo hace con toda su ruta pero para que funcione el teqc solo es indicando el nombre del archivo.

teqc +nav nombrearchi0.14n -week semanagps -tr d nombrearchivo.dat> nombrearchi0.14o

Nuevamente gracias :D
« Última modificación: 14 Marzo 2014, 15:01 pm por rochro » En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Utilidad xa cambiar nombre de arxivo y extension (JAVA)
Java
Matrix_Soul 0 5,021 Último mensaje 28 Diciembre 2004, 09:23 am
por Matrix_Soul
como obtener la extension y nombre del programa con CommondDialog
Programación Visual Basic
ricardovinzo 8 3,115 Último mensaje 16 Junio 2008, 22:30 pm
por ricardovinzo
[Batch] obtener nombre de archivo (solucionado)
Scripting
corax 2 10,993 Último mensaje 23 Junio 2009, 20:29 pm
por corax
Extraer nombre y extension de archivo en Batch[Solucionado]
Scripting
gorgon12 7 10,986 Último mensaje 6 Agosto 2009, 20:45 pm
por gorgon12
[BATCH] Cambiar extension a archivos
Scripting
ovichan 5 8,784 Último mensaje 27 Septiembre 2012, 16:32 pm
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines