Comunidad Underground Hispana  

Retroceder   Comunidad Underground Hispana > Programacion > Batch / Bash-Shell

Like Tree3Me Gusta
  • 1 Post By cuban
  • 1 Post By ajr784
  • 1 Post By Bater

Respuesta Crear Nuevo Tema
 
Compartir en twitter LinkBack Herramientas Desplegado
Antiguo 09-may-2014, 20:02   #1
Habitual
 
Avatar de Bater
 
Fecha de Ingreso: agosto-2011
Ubicación: Planeta Tierra
Amigos 3
Mensajes: 173
Gracias: 34
Agradecido 18 veces en 18 mensajes.
Smile ¿Cómo opero estos archivos?

Hola, necesito su ayuda.

Quiero borrar una lista de archivos con nombres específicos pero quiero evitar
anteponer el comando "Del" a cada nombre del archivo, ¿Cómo lo hago?

(Es una lista mucho más larga)
Quiero evitar esto:

@echo off
Del landstal.txd
Del landstal.dff
Del bravura.txd
Del bravura.dff
Del buffalo.txd
Del buffalo.dff
Del linerun.txd
Del linerun.dff
Del peren.txd
Del peren.dff
Del sentinel.txd
Del sentinel.dff (...)

Disculpen, pero hace años no e estado en batch. Y necesito ayuda urgente, gracias de antemano.
__________________
Vivir no me cansa ni cuesta, lo que me cansa y me cuesta es mantenerme vivo.
Bater está desconectado   Responder Citando
Antiguo 10-may-2014, 07:05   #2
Mod recien llegado
 
Fecha de Ingreso: enero-2010
Amigos 10
Mensajes: 1.407
Gracias: 646
Agradecido 372 veces en 323 mensajes.
Predeterminado Respuesta: ¿Cómo opero estos archivos?

Entiendo, para eso tienes dos opciones, simular una estructura de array para usar un contador o usar un bucle for.
supongamos que tienes en una variable separada por espacios todos los nombres de los ficheros a borrar
Código:
@echo off
set "ficheros=landstal.txd landstal.dff bravura.txd bravura.dff buffalo.txd buffalo.dff linerun.txd linerun.diff peren.txd peren.txd"
FOR /F "delims= " %%a IN (%ficheros$%) DO (
	echo [+] Borrando: %%a
	del %%a
)
  

Aqui un tutorial de elecktro donde explica el uso del comando for.
Tutorial extendido de aprendizaje Batch (by Elektro H@cker)
Bater le gusta esto.
__________________
cuban está desconectado   Responder Citando
El Siguiente Usuario Agradeció a cuban Por Este Mensaje:
Bater (11-may-2014)
Antiguo 11-may-2014, 02:01   #3
Habitual
 
Avatar de Bater
 
Fecha de Ingreso: agosto-2011
Ubicación: Planeta Tierra
Amigos 3
Mensajes: 173
Gracias: 34
Agradecido 18 veces en 18 mensajes.
Predeterminado Respuesta: ¿Cómo opero estos archivos?

Gracias, lo probaré y te cuento luego el resultado, gracias.

PD:
Extrañaba el foro

Edito:
No funcionó, por alguna razón no borra los archivos, pero a su vez tampoco me muestra errores. Así que no tengo ni idea de que es lo que ocurre.

___________________________________

Algún método para que pueda leer linea por linea los nombres de los archivos? Recuerdo que había un tema en el foro que lo trataba pero no me recuerdo cual era... Creo que era así: Definir una variable, y que cada nombre en modo lista se operase uno por uno como si fuese la variable establecida.
__________________
Vivir no me cansa ni cuesta, lo que me cansa y me cuesta es mantenerme vivo.

Última edición por Bater; 11-may-2014 a las 10:37
Bater está desconectado   Responder Citando
El Siguiente Usuario Agradeció a Bater Por Este Mensaje:
cuban (11-may-2014)
Antiguo 22-jun-2014, 06:36   #4
Mod recien llegado
 
Fecha de Ingreso: enero-2010
Amigos 10
Mensajes: 1.407
Gracias: 646
Agradecido 372 veces en 323 mensajes.
Predeterminado Respuesta: ¿Cómo opero estos archivos?

hay que habilitar la expanción de variables retardadas.
__________________
cuban está desconectado   Responder Citando
Antiguo 22-jun-2014, 09:54   #5
Gran Colaborador
 
Avatar de ajr784
 
Fecha de Ingreso: marzo-2007
Amigos 7
Mensajes: 1.869
Gracias: 37
Agradecido 391 veces en 338 mensajes.
Predeterminado Respuesta: ¿Cómo opero estos archivos?

Por lo general se hacen preguntas sin dar demasiado detalle. Ésto supone un problema grande porque uno puede dar una respuesta que toma en cuenta escenarios complicadísimos que no son el caso. Posibles soluciones, simples no hace falta hacer mucho:
* Quieres borrar todos los archivos con extensiones específicas:
Código:
del *.txd
del *.dff
  
bualá!, ahora si tenemos escenarios más complejos, por ahí podrías ver lo que te proponen (pero yo no le veo mucho sentido a complicarse así, después de todo tienes una lista con el nombre de los archivos, es mucho más sencillo hacer un del y agregar el nombre del archivo), acabo de probar algo mucho más sencillo que complicarse la vida con binding de variables retardadas o for:
Código:
del nombrearchivo1.txt nombrearchivo2.txt "nombre archivo3.dff" .....
  
¿No les parece sencillo?...

Historia al paso, recuerdo un día en la facultad que estábamos viendo integrales múltiples, en la cuál había un problema. El profesor lo plantea y pregunta ¿cómo lo podemos resolver?, pues claro uno se arma la cabeza empieza a buscar las variables, lo límites sobre el cuál integrar, todo mirando el enunciado del problema... y he aquí que nos dice, ¿parece un problema complicado no?, pero si miramos bien uno puede hacer ésto, aquello, aplicar Pitágoras y bualá! (operaciones sencillas que un niño puede hacer), pero claro, como uno está estudiando integrales múltiples, se cierra en que la solución debe ser por ahí... abran la cabeza y siempre busquen entre todas las herramientas que tengan a disposición. Siempre es mejor una solución simple a una complicada.

Si aún te resulta difícil encontré una forma más "legible" de hacer para una lista de archivos:
Código:
del nombre1.txd ^
  nombre1.dff ^
  nombre2.txd ^
  nombre2.dff ^
  .....
  
No se ustedes, pero si yo me tengo que cruzar con éste tipo de problemas en lo que únicamente tengo que borrar siempre la misma lista de archivos, pos un del seguido por la lista de archivos a borrar es la mejor solución que he encontrado.
__________________

12 años viviendo en el país de las maravillas, hasta que un boludo viene y te despierta con una patada en los huevos...
Gracias Presidente Mau
ajr784 está desconectado   Responder Citando
Antiguo 22-jun-2014, 10:23   #6
Mod recien llegado
 
Fecha de Ingreso: enero-2010
Amigos 10
Mensajes: 1.407
Gracias: 646
Agradecido 372 veces en 323 mensajes.
Predeterminado Respuesta: ¿Cómo opero estos archivos?

Tambien es valida tu respuesta arj, pero lo interesante es saber usar o almenos conocer todas las herramientas que se nos provee para trabajar.
__________________
cuban está desconectado   Responder Citando
Antiguo 23-jun-2014, 17:29   #7
Gran Colaborador
 
Avatar de ajr784
 
Fecha de Ingreso: marzo-2007
Amigos 7
Mensajes: 1.869
Gracias: 37
Agradecido 391 veces en 338 mensajes.
Predeterminado Respuesta: ¿Cómo opero estos archivos?

Cita:
Tambien es valida tu respuesta arj, pero lo interesante es saber usar o almenos conocer todas las herramientas que se nos provee para trabajar.
Si, es "interesante" conocer, pero no por eso a todo problema que se presente atacarlo con la misma herramienta.
(Creo que ya tuve ésta discusión contigo, no voy a volver a caer en eso de nuevo que no tiene sentido).
Como decías, es "interesante" si para alguien que está aprendiendo Batch, para alguien que no está aprendiendo, e incluso, no le interesa aprender Batch (me incluyo) éste tipo de soluciones es irrelevante, me hace perder el tiempo. No quiero entrar en debate sobre ésto (si ya se, no me le escapo, pero sepan que de acá sobre ésta pelea no hablo más acá), pero prefiero muchas veces perder el tiempo aprendiendo algo más fácil (powershell) para el manejo de archivos por lotes (incluído en todos los windows, desde vista/server 2008 en adelante, instalable en XP/server 2003).

@cuban, no desmerezco tu solución pero, vamos, ¿no se te cruzó por la cabeza otra forma?, el resolver los problemas siempre con la misma herramienta/de la misma forma, te cierra los ojos y no te permite ver otras soluciones mucho más sencillas... es más, para ponerlo en perspectiva, a mi se me había ocurrido algo como tener un archivo con únicamente el nombre de los archivos a borrar, luego en el bat leerlo e ir borrando...
cuban le gusta esto.
__________________

12 años viviendo en el país de las maravillas, hasta que un boludo viene y te despierta con una patada en los huevos...
Gracias Presidente Mau
ajr784 está desconectado   Responder Citando
El Siguiente Usuario Agradeció a ajr784 Por Este Mensaje:
cuban (24-jun-2014)
Antiguo 24-jun-2014, 07:04   #8
Mod recien llegado
 
Fecha de Ingreso: enero-2010
Amigos 10
Mensajes: 1.407
Gracias: 646
Agradecido 372 veces en 323 mensajes.
Predeterminado Respuesta: ¿Cómo opero estos archivos?

Puede que sea que no me explique, ya que suelo dar por hecho ciertas cosas.

Cuando puse mi ejemplo, hay que tener la variable ficheros cargada con el nombre de cada fichero+su extención, separados por un espacio(el separador lo define el usuario, pero debe después usarlo en el for). PERO no indique alternativas a rellenar dicha variable, ya que doy por hecho que el usuario puede cargar el contenido de esa variable mediante la instrucción dir, o leyendo un fichero de texto(como indicas tu arj), o simplemente arrastrando y soltando todos los ficheros a la ventana de cmd donde se ejecuta el script.

Son muchas alternativas, pero di por obvia, ya que lo que se pide es borrar esos fifhceros y lo que puse hace eso(falta habilitar la expansión de variables retardadas), no como cargar la variable que contendrá los ficheros a borrar.


Pd: Este tema me parece interesante, ya que no hablamos de un lenguaje, si no de los metodos a resolver un problema de hacer algo simple o buscar las formas de resolverlo aprendiendo los metodos de X lenguaje para hacerlo aunque sea una solución compleja. Creo post en el área de programación general y seguimos allí para no desvirtuar más el tema.
__________________
cuban está desconectado   Responder Citando
Antiguo 21-sep-2014, 21:26   #9
Habitual
 
Avatar de Bater
 
Fecha de Ingreso: agosto-2011
Ubicación: Planeta Tierra
Amigos 3
Mensajes: 173
Gracias: 34
Agradecido 18 veces en 18 mensajes.
Predeterminado Respuesta: ¿Cómo opero estos archivos?

Gracias por sus respuestas y su pequeño debate. (Fué interesante)
Respecto a la lista...

El problema es el siguiente, trataré de explicarlo de una mejor manera.

Tengo una lista con más de 400 nombres; todos son diferentes, es decir la extención de todos es la misma en *.txd/*.dff. Pero con nombres diferentes.
%Nombre%.txd/%Nombre%.dff.

E optado por anteponer el comando del a todos y cada uno de los nombres lo cual me robó mucho tiempo, tiempo que no quería invertir en ello. Desde un principio traté de buscar un pequeño código en batch que me facilitace la tarea y así poder "mejorar" de algún modo el borrado de esos archivos.

Posible solución:
Definitivamente el usar:
Código:
Del *.txd
Del *.dff
  
No era una opción viable por que mi fin era el eliminar archivos específicos. Con la misma extención, sí. Pero con diferentes nombres.

=======================================
Lo que yo quería hacer es lo siguiente:
Cita:
Tomar el archivo o bloque de nombres y evitar re-editarlo.

No quería hacer lo sig:
Del nombre.dff nombre.txd nombre2.dff nombre2.txd (...)

Por que hiba a ser prácticamente lo mismo, que:
Del nombre.dff
Del nombre.txd (..)

Lo que yo deseaba hacer es...

Tomar este bloque.
alpha.txd
alpha.dff
phoenix.txd
phoenix.dff
glenshit.txd
glenshit.dff
sadlshit.txd
sadlshit.dff
bagboxa.txd
bagboxa.dff
bagboxb.txd
bagboxb.dff
tugstair.txd
Y eliminar cada archivo que se especifíca línea por línea.

Es decir:

{Pseudo código}
Read List
Del List

@echo off
:BO
Del Leerlínea; borrar línea; pasar a la siguiente línea; Leerla, Borrarla..."Bucle"
If Li borrado goto eof
else
goto Bo
:LI
"LISTA"
En fin, quiero que el pequeño código lea la línea y luego borre el archivo que se especifíca en la línea. Después que pase al siguiente. Y así sucesivamente.

Lo he estado intentando pero como ya me oxide no e podido siquiera borrar los primeros archivos.
Ya he usado varibles y nada.

Y como de nuevo se me presenta el problema y e borrado el archivo en donde antepuse el comando DEL a todos y cada uno de los nombres en el archivo. Tengo de nuevo el dilema.

Espero poder lograrlo en batch por que es lo más práctico que poseo hasta el momento. Sólo necesito el block de notas y CMD.

Gracias por su ayuda.
cuban le gusta esto.
__________________
Vivir no me cansa ni cuesta, lo que me cansa y me cuesta es mantenerme vivo.
Bater está desconectado   Responder Citando
El Siguiente Usuario Agradeció a Bater Por Este Mensaje:
cuban (22-sep-2014)
Respuesta

Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los Códigos BB están Activado
Las Caritas están Activado
[IMG] está Activado
El Código HTML está Desactivado
Trackbacks están Activado
Pingbacks están Activado
Refbacks están Activado



Temas Similares
Tema Autor Foro Respuestas Último mensaje
PDF Converter Enterprise v8.1 Multilenguaje (Español) kimeraman Software 0 01-oct-2013 17:03
Comandos basicos en Linux Milaras21 Manuales y Tutoriales 2 12-ene-2012 09:16
Tutorial Programación Batch - completo - GUN$ Batch / Bash-Shell 5 04-dic-2011 18:42



Portal Hacker
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.0