Autor
|
Tema: Ayuda sobre programacion BATCH (Leído 4,371 veces)
|
DanielB
Desconectado
Mensajes: 8
|
He leido las ayudas del foro, pero no puedo hacer un programa en batch que lea uno a uno LOS ARCHIVOS de un determinado directorio del disco "C" y los compare con un archivo del disco "D" (para saber si el contenido de ambos archivos son iguales). Pero el programa deberia evaluar previamente si ese archivo (del disco "C") existe en el disco "D". POR FAVOR AYUDENME Gracias
|
|
|
En línea
|
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
Hola supongo que ya habras estudiado un poco el comando FC para comparar dos archivos y mostrar sus diferencias.. Para ver la ayuda del Comando. Y respecto a lo de a lo de evaluar si el archivo del disco c: esta en d:, no le veo caso, ya que se supone que vamos a comparar archivos diferentes, y no necesitas tener el archivo1 que esta en c: en d:... El programa revisara si existen los archivos que quieres comparar, si no, te devuelve error.
|
|
|
En línea
|
|
|
|
DanielB
Desconectado
Mensajes: 8
|
Primero, GRACIAS por contestar. Conozco el comando FC, pero mi problema radica en lo siguiente:
1) Tengo un subdirectorio en el disco "C" con 250 archivos aproximadamente y en el "D" tengo casi lo mismo o menos. Ej: C:\sudir\file1, C:\sudir\file2, C:\sudir\file3, C:\sudir\file4, ... y asi sucesivamente hasta C:\sudir\file250 y en el disco "D" (es un disco extraible ~ backup) tengo D:\sudir\file1, C:\sudir\file4, C:\sudir\file5, ... y asi sucesivamente hasta file250. Como podras ver en el disco "D" falta el file2 y el file3.
2) Debido a que se han modificado algunos archivos tanto en "C" como en "D" indiscriminadamente, yo debo encontrar cuales son los archivos que son iguales (en su contenido, es decir, la informacion que contiene el archivo) tanto en "C" como en "D", es decir si: C:\sudir\file1 = D:\sudir\file1 son iguales C:\sudir\file2 ---> NO EXISTE EN EL "D" el programa en BATCH deberia contemplarmelo C:\sudir\file3 ---> NO EXISTE EN EL "D" idem anterior C:\sudir\file4 = D:\sudir\file4 son distintos C:\sudir\file5 = D:\sudir\file5 son iguales y asi sucesivamente hasta el file250. Por supuesto que la salida deberia ser otro archivo llamado por ejemplo "salida.tmp" en donde pueda saber cuales son iguales, cuales distintos y cuales faltan en el "D".
Obviamente no quiero hacerlo uno por uno, por eso pense que podria hacerlo en un BATCH en forma automatica, pero me resulta muy dificil y de ahi que necesito ayuda. Espero haya sido lo suficientemente claro. GRACIAS
|
|
« Última modificación: 7 Marzo 2008, 06:42 am por DanielB »
|
En línea
|
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
Hola, entiendo lo que me quieres decir, pero no se como aplicarlo... Supongamos que los archivos tienen nombre asi: file1, file2, file3, file4. Podrias usar IF: IF [NOT] EXIST archivo comando Else "haz esto"
Si existe el archivo, los compararia, si no existe le pones que te muestre un mensaje de que no haya y se vaya a la siguiente linea. Pero no se como ponerlo para que sea mas automatico como tu quieres... Ya me quede con la duda...
|
|
|
En línea
|
|
|
|
DanielB
Desconectado
Mensajes: 8
|
ok con lo del "IF", pero...como haces para pasar la salida que te da el "dir /b" y pasarlo como parametro uno por uno al "IF". Yo probe hacer lo siguiente y me dio error.
dir c:\subdir\*.* /b | if exist d:\"salida del dir" (fc .......) else (echo el archivo no existe)
Como resuelvo esta situacion: pasar uno por uno los nombres de los archivos que me da el "dir" y pasarlos al "fc".
Gracias de nuevo
|
|
« Última modificación: 7 Marzo 2008, 21:31 pm por DanielB »
|
En línea
|
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
Hola disculpa por la tardanza. Aver si te sirve esta idea. Que tal si hacemos un dir /b y lo direccionamos a .txt @echo off dir /b>dir.txt For /f "tokens=2 delims=:" %%a in ('FIND /I " LoQueQuieresEncontrar" dir.txt') do (set pa=%%a) Y aqui irian los demas comandos usando la variable %pa% Es solo una idea...
|
|
« Última modificación: 9 Marzo 2008, 07:23 am por RockoX »
|
En línea
|
|
|
|
DanielB
Desconectado
Mensajes: 8
|
Hola mi amigo. No tienes por que disculparte. Voy a probarlo. Gracias por la ayuda. GRACIAS
|
|
|
En línea
|
|
|
|
|
|