Autor
|
Tema: -> Programación BATCH Avanzada. (nuevo) (Leído 83581 veces)
|
Kiosera
Desconectado
Mensajes: 10
Das muy poca cosa cuando das de lo que posees
|
Buen día sirdarckcat y buen día para todos!! Quería preguntar acerca de un tema: Sucede que quiero leer línea a línea un archivo TXT. Estoy usando lo siguiente: FOR %%a in (c:\CB.txt) DO echo %%a Pero lo que veo es c:\CB.txt y no el contenido (lo que hay dentro de CB.txt)  Uso el for porque lo que deseo es que recorra el archivo hasta que se acabe.... Es posible con el FOR o estoy usando una sentencia que no es? De antemano, gracias por la respuesta
|
|
|
|
|
En línea
|
|
|
|
~[uNd3rc0d3]~
Desconectado
Mensajes: 189
programando...
|
@echo off for /f "tokens=* delims= " %%a in (hola.txt) do (echo %%a) pause > nul hola como andas bien y vos yo bien, che a donde vas? a tomar una virra, vamos? dale....
hola como andas bien y vos yo bien, che a donde vas? a tomar una virra, vamos? dale....
see ya!
|
|
|
|
|
En línea
|
 leete las reglas asi todos estamos mejor
|
|
|
morenochico
Desconectado
Mensajes: 77
|
¿Se puede poner varias instrucciones ftp en UNA sola linea desde el promtp de msdos? Necesito hacer varios movimientos en varias pc's remotas, (borrar archivos, crear directorios etc). Esto no es problema ya que tengo un archivo .exe que hace eso (todas las pc's tienen una configuracion similar). Lo que quiero saber es si se puede poner una instruccion larga dentro del run de windows, esto es: inicio ---> run. Lo que quiero es: abrir cmd.exe, ir a un directorio (desktop), conectarme a un servidor ftp y descargar mi archivo .exe que es el que hace todo el movimiento que ocupo. Quiero hacerlo todo desde el run de windows o en su defecto abrir una terminal CMD y poner una instruccion larga (cd desktop, ftp ... etc...). He intentado pero hasta el momento no he podido. Ya se que para conectarse a un servidor ftp se puede crear un archivo con instrucciones que se manda llamar con ftp desde el prompt. Pero no me sirve ya que el archvo .exe que ocupo seria mas chico que el que archivo con instrucciones ftp y en la practica se haria mas trabajo. Las razones por las que quiero hacerlo asi son tres, la comunicacion es muuuy lenta  , yo no lo haria lo haria una persona que no tiene muchos conocimientos en pc's  y son demasiadas pc's  . Busco poner la instruccion solo una vez y que solito se haga todo el trabajo. 
|
|
|
|
|
En línea
|
|
|
|
BasFKlitzZ
Desconectado
Mensajes: 4
|
Holas a todos!... Miren, tengo una simple duda con un *.bat: ¿Se puede poner una llamada (:llamada) en el mismo .bat del archivo que lo llama...? Porque intento, y lo reviso, pero no encuentro error. Lo que pasa es que reinicia la aplicación, o sea, vuelve a empezar desde el principio, y no reconoce la llamada  El código que tengo es algo así: Nombre del archivo: "Prueba.bat" ------------------------------------------------------------------------------------------------ Código:@echo off color A set /P caracter=Escriba algun caracter, y presione enter: IF %caracter% neq i ( cls echo Los caracteres que usted ha escrito, son incorrectos... echo Presione una tecla para continuar... pause >nul ) ELSE ( cls echo Muy Bien!!! Has acertado!!! echo Adios pause >nul exit) Prueba.bat ventana @echo off&call:%*&goto:EOF :ventana start color A echo Tendrás 7 años de mala suerte por no haber acertado... pause >nul exit goto:EOF ------------------------------------------------------------------------------------------------ Espero que me puedan ayudar, y se que mi error debe ser algo insignificante...  tal vez sea por el "@echo off&call:%*&goto:EOF"... tal vez tenga algo mal escrito, o me falte algo... nose, pero si los pongo en .bats diferentes, funciona  Desde ya, muchas gracias 
|
|
|
|
|
En línea
|
|
|
|
renegomez
Desconectado
Mensajes: 1
|
Buen dia, hola a todos, necesito su ayuda, tengo un software que quiero que solo se pueda instalar una una maquina determinada y que solo permita hacer 3 instalciones y que luego lo bore, el softwre se encuentra un penddrier(USB), si alguien puede decirme como hacer una bat, mil gracias
|
|
|
|
|
En línea
|
|
|
|
|
|
elnenamelenas
Desconectado
Mensajes: 1
|
POr favor necesito ayuda urgentemente, soy nuevo en esto y necesito crear un programita que me cambie automaticamente el path del windows donde se ejecute por el que yo le diga.
Alguien puede ayudarme? se lo agradeceré aternamente
Lo que llevo hecho hasta ahora sin lograr nada es:
path>pathanterior.Txt If %pathanterior.txt% EQU %pathcorrecto% (echo OK) Else %pathanterior.txt% EQU %pathcorrecto% (echo ko) Pause
|
|
|
|
|
En línea
|
|
|
|
m1st1c0
Desconectado
Mensajes: 1
|
Hola a Todos!: Tengo un equipo que genera automaticamente archivos (AVI) y los almacena en una carpeta; tengo un bat que elimina los más viejos a 6 dias. Quiero sacarle un backup, pero organizado es decir que se creeen la carpetas por día y copie los archivos de ese dia en la carpeta que le corresponde. Ej: Los archivos estan en C:\VIDEO\ y la idea es que el genere algo como c:\Backup\16\ c:\Backup\17\ c:\Backup\18\ c:\Backup\19\ c:\Backup\20\ c:\Backup\21\ c:\Backup\22\ Y que tome los archivos de C:\VIDEO y los guarde en el día que corresponde. Espero contar con su apoyo! 
|
|
|
|
|
En línea
|
|
|
|
|
Bad_Robot
|
gracias por el manual , lo andaba buscando 
|
|
|
|
|
En línea
|
|
|
|
Shinseiki86
Desconectado
Mensajes: 44
Loading...
|
Saludos y que tengan un feliz día!! Tengo un inconveniente con unos archivos txt. diariamente me llegan alrededor de 3000 archivos que tengo que clasificar de acuerdo a 2 lineas que estan casi al final. Las dos lineas son: "000323 0000000000000000000000000000000000000000" "000333 0000000000000000000000000000000000000000" Necesito que si estas lineas no existen en el fichero, que lo mueva a una carpeta X. Ejemplos de un archivo son estos: Este, por ejemplo debe moverse a la carpeta X. 000012CC66666666 0300 76001CHAPARRO NACHO 000012CC99999999 0300 76001ARCO JUANA 00031300058700000000733600000010702800000000000000000000 0003235246461391 0000107028000000000000000000000000000000 000333 000000000000000000000000000000000000000000035300000000000000626572000000000000000000000000000000 00036300000000000000000000000000000000000000000000000000 00037300000000000000626572000000000000000000000000000000 00038300000000000000000000000000000000000000000000000000 00039300000000000000626572000000000000000000000000000000 Y este se puede quedar donde está: 000012CC99999999 0300 76001ARCO JUANA 00031300004615000000057700000000000000000000000000000000 000323 0000000000000000000000000000000000000000 000333 000000000000000000000000000000000000000000035300000000000000057700000000000000000000000000000000 00036300000000000000000000000000000000000000000000000000 00037300000000000000057700000000000000000000000000000000 00038300000000000000000000000000000000000000000000000000 00039300000000000000057700000000000000000000000000000000 Lo que me parece complejo es que se necesitan condicionales, intenté hacerlo en c++, pero la verdad me faltan muchos conocimientos.  PD: El texto se visualiza mejor en notepad Gracias! Kanpai!
|
|
|
|
|
En línea
|
|
|
|
|
sirdarckcat
|
Si sabes cuantas lineas hay en el archivo, y exactamente cuales son las que tienes que leer, con un FOR /F, con un filtro skip; y un set, puedes hacer el trabajo..
Saludos!!
|
|
|
|
|
En línea
|
|
|
|
Shinseiki86
Desconectado
Mensajes: 44
Loading...
|
Si sabes cuantas lineas hay en el archivo, y exactamente cuales son las que tienes que leer, con un FOR /F, con un filtro skip; y un set, puedes hacer el trabajo..
Saludos!!
Ese es el problema... El archivo empieza con una lista de personas, la cual va desde 1 hasta ?? . Habia pensado usar un findstr.
|
|
|
|
|
En línea
|
|
|
|
|
sirdarckcat
|
una lista de personas, la cual va desde 1 hasta ?? No entiendo entonces lo que tienes que hacer  Saludos!!
|
|
|
|
« Última modificación: 15 Junio 2008, 22:26 por sirdarckcat »
|
En línea
|
|
|
|
Shinseiki86
Desconectado
Mensajes: 44
Loading...
|
Hola a todos estoy utilizando este comando para filtrar los archivos txt findstr /m /c:"texto1a" *.txt > temp.txt findstr /m /c:"texto1b" *.txt >> temp.txt findstr /m /c:"texto2a" *.txt >> temp.txt findstr /m /c:"texto2b" *.txt >> temp.txt Asi me sirve, pero tengo que filtrarlo luego por excel, ya que necesito un consolidado de la busqueda. Me serviría mas si pudiera usar condicionales... ¿Se puede? 
|
|
|
|
|
En línea
|
|
|
|
|
Novlucker
|
Siempre me ha gustado mucho más *.vbs que *.bat (se crean igual, notepad y extensión vbs), es por eso que he codeado la siguiente utilidad que hace lo que necesitas,....... espero  set objfso = createobject("scripting.filesystemobject") ' Establecemos el objeto encargado de realizar las tareas set lacarpeta = objfso.getfolder("d:\carpetacontenedora") 'Fijamos la ruta en la que esta la carpeta, dentro de la cual, están los archivos set afil = lacarpeta.files 'Obtenemos los archivos for each f in afil 'Por cada archivo en la carpeta set elarchivo = objfso.OpenTextFile(f.path,1) contenido = elarchivo.readall ' Lo abrimos en modo lectura y leemos su contenido primero = instr(1,contenido,"000323 0000000000000000000000000000000000000000",1) segundo = instr(1,contenido,"000333 0000000000000000000000000000000000000000",1) ' Buscamos la primer línea, y luego la segunda elarchivo.close ' Cerramos el archivo if primero <>0 and segundo<>0 then ' Comparamos, si existen la primera Y la segunda línea, deben de existir las dos objfso.movefile f.path,"d:\pronto\"&f.name ' Movemos el archivo a la carpeta destino en caso de que sea afirmativo ' Debe de establecerse la ruta de la carpeta, en este caso es "d:\pronto" end if ' Terminamos la comparación next ' Pasamos al siguiente archivo También te lo he comentado para que lo entiendas mejor  Pruebalo y cuentanos como te va Saludos [Modifico] Viendo un poco mejor lo que necesitas me he dado cuenta de que la condición esta al revés, en este caso, los mueve si tienen la cadena de texto, pero tu quieres lo contrario, que los mueva en caso de que no las tenga, para eso basta con modificar la siguiente línea.... Esto... if primero <>0 and segundo<>0 then ' Comparamos, si existen la primera Y la segunda línea, deben de existir las dos Por esto.... if primero =0 or segundo=0 then ' Comparamos, si no existe la primera O la segunda línea, con que una no exista basta Saludos
|
|
|
|
« Última modificación: 23 Junio 2008, 16:17 por Novlucker »
|
En línea
|
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD "Hay dos cosas infinitas: el Universo y la estupidez humana. Y de la primera no estoy muy seguro." Albert Einstein
|
|
|
|
|