| 
	
		|  Autor | Tema: Ayuda con BAT leer Archivo  (Leído 27,607 veces) |  
	| 
			| 
					
						| leogtz 
								. . .. ... ..... ........ ............. ..................... 
								Colaborador
								      Desconectado 
								Mensajes: 3.069
								
								 
								/^$/
								
								
								
								
								
								     | 
 
Sólo modifica esto: for %%a in (C:\ICR\DATA\?_*_*_*.txt) do ( for /f "tokens=1,2 delims=_" %%b in ("%%a") do ( for /f "tokens=* delims=0" %%d in ("%%c") do (call :comando %%a %%b %%d) ) ) Por esto: for %%a in (C:\ICR\DATA\*.txt) do (for /f "tokens=4 delims=_" %%_ in (%%a) do (
 echo %%~n_
 )
 )
Eso probablemente te mostrará lo que quieres, luego puedes manejar la variable "%%~n_" como desees.
 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| elecktra 
								
								 Desconectado 
								Mensajes: 120
								
								
								
								
								
								   | 
 
Hola, comoe stas? amigo, la verdad no logro hacer que fucniones, si uso el codigop que me pasaste, ya me deja de fucnioanr el BAT y no trabajr como deberia, te explico que necesito, apra ver si me peude hechar ua mano. for %%a in (C:\ICR\DATA\?_*_*_*.txt) do (for /f "tokens=1,2 delims=_" %%b in ("%%a") do (
 for /f "tokens=* delims=0" %%d in ("%%c") do (call :comando %%a %%b %%d)
 )
 )
 goto :eof
 
 :comando
 set n0=%~1
 set n1=%~nx2
 set n2=%~3
 set n3=%~n1
Con ese codigo, yo kleo cada  nombre de txt del directorio, ejemplo: 1_00026_081122_081130.txt luego con la variable set n1=%~nx2  extraigo 1  (1 _00026_081122_081130.txt) Con la variable set n2=%~3  extraigo el 26  (1_00026 _081122_081130.txt) Con al variable set n3=%~n1  extraigo el 1_00026_081122_081130 .txt esta ultima variable es la que neceito modificar, apra que ya no me cuente los 13 caracteres si no que me cuento doto lo que alla desde el "_ " hasta el .txt (sin incluir este) y sin importar la catidad y tipo de caracteres, me entiendes? Ejemplo: 00026_081122_081130 .txt ó 00026_081122_081130PRUEBA .txt El tema es que yo no se utilizar los tokens, anteriormente me ayudaron ustedes con este problema. Y trate de probar el codigo con mis conocimientos, peor no logro ahcerlo fucnioanr. Gracias.
 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| leogtz 
								. . .. ... ..... ........ ............. ..................... 
								Colaborador
								      Desconectado 
								Mensajes: 3.069
								
								 
								/^$/
								
								
								
								
								
								     | 
 
A ver, tu lo que quires es esto: exporto un archivo de txt de registro, dentro del mismo me guarda partes de los archivos encontrados en el directorio, pero necesito que el PERIODO: ya no sea %n3:~-13%, osea que no me guarde los ultimo 13 caracteres si no todo los que hay desde el segundo "_" hasta la extensión (sin incluir esta).ejemplo:
 
 2_00411_080601_080630POTE.TXT
 1_00411_080601_080630EE.TXT
 
 A partir del segundo _ pero sin la extensión: @echo offcd /d "%homedrive%\icr\data"
 :: No hace falta indicar la ruta de los archivos de texto en el for, ya que
 :: estamos en ese mismo directorio.
 :: Procesamos todos los archivos .txt del directorio local.
 :: Segun lo que tu has descrito, tu quieres todo lo que esta despues del segundo '_', pero
 :: sin la extension:
 for %%_ in (*.txt) do (
 for /f "tokens=4 delims=_" %%a in (%%_) do (
 echo %%~na, en el archivo : %%a
 )
 )
 pause>nul
 
La salida generada: C:\>code.bat080630, en el archivo : 080630.TXT
 080630HL, en el archivo : 080630HL.TXT
 080630POTE, en el archivo : 080630POTE.TXT
 080630, en el archivo : 080630.TXT
 080630HL, en el archivo : 080630HL.TXT
 080630POTE, en el archivo : 080630POTE.TXT
 080630, en el archivo : 080630.TXT
 080630HL, en el archivo : 080630HL.TXT
 080630POTE, en el archivo : 080630POTE.TXT
 080630, en el archivo : 080630.TXT
 080630HL, en el archivo : 080630HL.TXT
 080630POTE, en el archivo : 080630POTE.TXT
 
 C:\icr\data>
No entiendo cual es el problema, los codigos que te he dado hacen exactamente lo que pides. Por mi parte es todo, ya no te ayudaré. |  
						| 
								|  |  
								| « Última modificación: 30 Septiembre 2009, 04:48 am por Leo Gutierrez. » |  En línea | 
 
 |  |  |  | 
			| 
					
						| elecktra 
								
								 Desconectado 
								Mensajes: 120
								
								
								
								
								
								   | 
 
Amigo, ya encontre porque me falla, en realidad tu estas ahciendo el codgi a partir del tercer "_" no del segun como como te decia, essimplemente eso, como modifico tu codigo?Gracias.
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| leogtz 
								. . .. ... ..... ........ ............. ..................... 
								Colaborador
								      Desconectado 
								Mensajes: 3.069
								
								 
								/^$/
								
								
								
								
								
								     | 
 
Modifica el tokens a 3. |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| elecktra 
								
								 Desconectado 
								Mensajes: 120
								
								
								
								
								
								   | 
 
Hola, perdona por insisteir, pero hay algo que no emesta funcionando.. porque al adaptarlo a mi y exportarlo a un txt, me sale esto:%%~na, en el archivo : %%a
 %%~na, en el archivo : %%a
 %%~na, en el archivo : %%a
 %%~na, en el archivo : %%a
 cuando deberia aparecer otro dato.
 Por otro aldo tu estas leyendo el contenido del txt o el nombre, porque no necesito leer el nombre.
 Gracias.
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| elecktra 
								
								 Desconectado 
								Mensajes: 120
								
								
								
								
								
								   | 
 
Mira, pues hice lo que me has dicho, cambie el tokens a 3 pero solo me muestra lo que se encuentra detras del tercer "_ " Estuve probando con otros valores y con un %%_*_ pero tampoco funciono. me das una manito. Gracias.  |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| CaronteGold 
								 
								
								 Desconectado 
								Mensajes: 339
								
								   | 
 
   Siento interrumpir... elektra, ¿Cuál es ese programa? |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| leogtz 
								. . .. ... ..... ........ ............. ..................... 
								Colaborador
								      Desconectado 
								Mensajes: 3.069
								
								 
								/^$/
								
								
								
								
								
								     | 
 
Mira, pues hice lo que me has dicho, cambie el tokens a 3 pero solo me muestra lo que se encuentra detras del tercer "_ " Estuve probando con otros valores y con un %%_*_ pero tampoco funciono. me das una manito. Gracias. Pon el código. |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| xassiz_ 
								
								 Desconectado 
								Mensajes: 273
								
								 
								Ich werde dich töten..
								
								
								
								
								
								     | 
 
   Siento interrumpir... elektra, ¿Cuál es ese programa?
 Notepad 2 |  
						| 
								|  |  
								|  |  En línea | 
 
  YXVuIGVyZXMgbWF0YWRvIHBhcmEgcG9uZXJ0ZSBhIGRlc2NpZnJhciBlc3RvIHhE |  |  |  |  |  
 
	
 
 
				
					
						| Mensajes similares |  
						|  | Asunto | Iniciado por | Respuestas | Vistas | Último mensaje |  
						|   |   | AYUDA CON BAT, LEER NOMBRE DE ARCHIVO... Scripting
 | elecktra | 3 | 3,459 |  28 Noviembre 2008, 00:56 am por Darioxhcx
 |  
						|   |   | Ayuda a leer y modificar Bytes de un Archivo .NET (C#, VB.NET, ASP)
 | adan-2994 | 4 | 6,877 |  7 Agosto 2011, 02:52 am por adan-2994
 |  
						|   |   | Ayuda - Leer Varios Datos en un Archivo Txt Programación C/C++
 | alejandrosevenfold | 2 | 3,540 |  20 Septiembre 2012, 22:39 pm por alejandrosevenfold
 |  
						|   |   | Ayuda al leer archivo Programación C/C++
 | mnd00003 | 1 | 2,444 |  13 Octubre 2014, 18:13 pm por rir3760
 |  
						|   |   | ayuda con mi codigo, leer de un archivo en c Programación C/C++
 | yeah_2796 | 0 | 2,096 |  28 Mayo 2015, 23:17 pm por yeah_2796
 |    |