elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Batch que copie todas las lineas menos la ultima
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Batch que copie todas las lineas menos la ultima  (Leído 2,036 veces)
santi810

Desconectado Desconectado

Mensajes: 21


Ver Perfil
Batch que copie todas las lineas menos la ultima
« en: 27 Diciembre 2013, 19:12 pm »

Buenos dias!

Mi problema es el siguiente:
Tengo un script para mover y ordenar las series que voy viendo.
Actualmente, por falta de fondos para comprar un NAS, estoy compartiendo los archivos desde mi ordenador de mesa prar verlos desde el portatil.

No tengo muy claro como se entra en la consola de mi ordenador remotamente, cosa que pienso investigar cuando tenga un poco de tiempo (si quereis aportar algo sobre este tema tambien estaria bien), por lo que me cree un script que crea otro script algo asi:

Código:
if exist %1 echo call mover %1 >> 0_ejecutar.bat
if exist %2 echo call mover %2 >> 0_ejecutar.bat
if exist %3 echo call mover %3 >> 0_ejecutar.bat
if exist %4 echo call mover %4 >> 0_ejecutar.bat
if exist %5 echo call mover %5 >> 0_ejecutar.bat



El tema es que quiero que ese script que se crea (el "ejecutar.bat") se borre solo!
Ya prove anteriormente que con un
Código:
ren 0_ejecutar.bat
funciona perfectamente aunque se este ejecutando, (vamos, que se autodestruye)

Con meter un
Código:
echo rm 0_ejecutar.bat
seria suficiente pero si meto en varios procesos la lista que archivos que quiero mover  se repetirian lineas con ese  codigo y se borraria antes de acabar!

Por eso quiero añadir una sección para que no me copie la ultima linea.


PD: Se me acaba de ocurrir que si borro las lineas duplicadas antes de ejecutarlo soluciono el problema pero si me ayudais con lo que propongo arriba tambien estaria bien! Gracias.


En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.878



Ver Perfil
Re: Batch que copie todas las lineas menos la ultima
« Respuesta #1 en: 27 Diciembre 2013, 19:37 pm »

¿A que lineas duplicadas te refieres?.

El comando REN / RENAME sirve para renombrar un archivo, no para eliminarlo.
El comando ECHO sirve para imprimir un eco en la salida de la CMD, no para eliminar un archivo.

Debes usar el comando DEL para eliminar un archivo.

Si intentas eliminar un script que se está procesando sin dejar que se procesen todas las instrucciones de ese script ...no se procesarán las demás instrucciones porque no existirá el archivo que las contenga.

Creo que lo que intentas hacer sería esto...:

Código
  1. @Echo OFF
  2.  
  3. (
  4.  
  5. If Exist "%~1" (Echo Call :mover "%%~1")
  6. If Exist "%~2" (Echo Call :mover "%%~2")
  7. If Exist "%~3" (Echo Call :mover "%%~3")
  8. If Exist "%~4" (Echo Call :mover "%%~4")
  9. If Exist "%~5" (Echo Call :mover "%%~5")
  10. Echo Del /Q "%%~f0"
  11.  
  12. ) > "%TEMP%\0_ejecutar.bat"
  13.  
  14. Pause&Exit

Saludos


« Última modificación: 27 Diciembre 2013, 20:05 pm por ElektroSoft » En línea



Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines