-> Programación BATCH Avanzada. (nuevo)

Iniciado por sirdarckcat, 24 Julio 2006, 10:01 AM

0 Miembros y 1 Visitante están viendo este tema.

xfz4

Cita de: renegomez en 28 Abril 2008, 19:55 PM
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

@ECHO OFF
CLS
:FIND
IF %USERNAME%==MAKINA DETERMINADA (GOTO NEXT) ELSE GOTO FIND
:NEXT
set /a IDENTIFICADOR=%IDENTIFICADOR%+1
if exist c:\3.GARBAGE (goto SALTE) else goto crear
:CREAR
echo item-%USERNAME%>c:\%identificador%.GARBAGE
:SALTE
DEL %0
:: SI QUIERES BORRAR LO INSTALADO LO BORRAS AKI  <---
:: O TAMIEN PODES METER EL IDENTIFICADOR EN EL PENDRIVE
:: ESTO TE DA UNA IDEA ??



saludos  ;D

PD: pasense por ka:
http://foro.elhacker.net/index.php/topic,163184.0.html
y aka:
http://foro.elhacker.net/index.php/topic,209121.0.html
y respondanme  >:( >:( >:( >:(   :rolleyes:   :¬¬  :P ;D

elnenamelenas

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

m1st1c0

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!  :-(

Bad_Robot

gracias por el manual , lo andaba buscando  :laugh:

Shinseiki86

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               0000000000000000000000000000000000000000

00035300000000000000626572000000000000000000000000000000
00036300000000000000000000000000000000000000000000000000
00037300000000000000626572000000000000000000000000000000
00038300000000000000000000000000000000000000000000000000
00039300000000000000626572000000000000000000000000000000

Y este se puede quedar donde está:

000012CC99999999        0300  76001ARCO                         JUANA
00031300004615000000057700000000000000000000000000000000
000323               0000000000000000000000000000000000000000
000333               0000000000000000000000000000000000000000

00035300000000000000057700000000000000000000000000000000
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. :huh:
PD: El texto se visualiza mejor en notepad
Gracias! Kanpai!

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!!

Shinseiki86

Cita de: sirdarckcat en 15 Junio 2008, 17:59 PM
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.

sirdarckcat

#57

Citaruna lista de personas, la cual va desde 1 hasta ??
No entiendo entonces lo que tienes que hacer :¬¬

Saludos!!

Shinseiki86

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? :huh:

Novlucker

#59
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  :P

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
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