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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  BATCH: Como puedo usar dos comandos en una sola linea?[Solucionado]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: BATCH: Como puedo usar dos comandos en una sola linea?[Solucionado]  (Leído 12,423 veces)
gh1E

Desconectado Desconectado

Mensajes: 229



Ver Perfil
BATCH: Como puedo usar dos comandos en una sola linea?[Solucionado]
« en: 6 Julio 2010, 17:24 pm »

Hi bros;

Espero q alguno de ustedes me puedan ayudar, seguro q si ya q son mas experimentados, bueno mi pregunta es la siguiente, existe alguna forma para poder ejecutar 2 comandos en una sola línea?, mi lío es en esto, quiero tener las lista de archivos "solo nombres" con sus extensiones de un directorio especifico y esos nombres se incluyan dentro de una linea de texto, por ultimo crear un archivo en txt. Mmmm no se si me pude explicar. Se podria hacer con variables?, me pueden dar una mano con eso? pero como newbie x favor...

Los comandos son algo asi, haber si me puedo explicar un poco mejor.  :-\

Código:
@echo off
:: creo una lista de los archivos del directorio
dir /b c:\test > 123.txt
:: ahora aqui es el problema, incluir los nombres de los archivos, luego de un texto
:: ya preestablecido, ejemplo si exite un documento en pdf en el directorio. que
::aparezca en pantalla y que cree un nuevo archivo.
echo Tengo este archivo "nosecualarchivo.pdf" dentro del directorio >> nuevo.txt

Espero me puedan ayudar. :-[

Salu2  ::)



« Última modificación: 7 Julio 2010, 06:57 am por Leo Gutiérrez. » En línea

Si no lo sabes...averigua...
SEr o nO SeR ...( y eso a quien le importa???)
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: BATCH: Como puedo usar dos comandos en una sola linea?
« Respuesta #1 en: 6 Julio 2010, 17:48 pm »

Mmmm no se si me pude explicar.

No, no te supiste explicar.

Para usar varios comandos en una linea puedes usar:

Código:
echo Hola & date
echo. & echo Adios & exit /b 0

Pero creo que tu te refieres al uso de comodines para tratar archivos en un directorio.

Si tu quisieras mostrar todos los archivos con extensión .txt y .doc en un directorio, podrías usar:

Código:
dir /b *.txt *.doc

Para todos los archivos:
Código:
dir /b *.*

Saludos.


En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
flony


Desconectado Desconectado

Mensajes: 584



Ver Perfil
Re: BATCH: Como puedo usar dos comandos en una sola linea?
« Respuesta #2 en: 6 Julio 2010, 18:01 pm »

Código:
dir /b c:\test >> 123.txt
para que se genere un renglon por cada archivo
y como dice leo jugar con los comodines en base a lo que vos queres
En línea

si un problema no tiene solucion entonces no es un problema...es algo inevitable
FranciskoAsdf

Desconectado Desconectado

Mensajes: 231


Ni bueno, ni malo. Solo nada.


Ver Perfil WWW
Re: BATCH: Como puedo usar dos comandos en una sola linea?
« Respuesta #3 en: 6 Julio 2010, 18:37 pm »

Según lo que entendí, lo que el necesita es algo como esto :

Tengo el directorio C:\ con el siguiente arbol
Código:
C:\hola\asdf.pdf
C:\pagefile.sys
C:\resplado\sistema\123.txt

Y que en el archivo de salida le salga algo como esto :

ArchivoSalida.txt

Código:

Archivo asdf.pdf dentro del directorio C:\Hola\
Archivo pagefile.sys dentro de C:\
Archivo 123.txt dentro de C:\respaldo\sistema\


Igual no te puedo ayudar porque soy igual de newbie que tu xD!!

Saludos :D!
En línea

Asdf debería ser algún tipo de función.
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: BATCH: Como puedo usar dos comandos en una sola linea?
« Respuesta #4 en: 6 Julio 2010, 19:05 pm »

Entonces se necesita forzosamente un bucle FOR:

Sin probar:

Código
  1. for /f "tokens=*" %%_ in ('dir /b *.*) do (
  2.        echo Archivo "%%_" en %CD%
  3. )
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
FranciskoAsdf

Desconectado Desconectado

Mensajes: 231


Ni bueno, ni malo. Solo nada.


Ver Perfil WWW
Re: BATCH: Como puedo usar dos comandos en una sola linea?
« Respuesta #5 en: 6 Julio 2010, 21:18 pm »

Código
  1. @echo off
  2.  
  3. for /f "tokens=*" %%_ in ('dir /b *.*') do (
  4.        echo Archivo "%%_" en %CD%
  5. )

funciona, solo le faltaba una comilla dentro del in,


saludos =)
En línea

Asdf debería ser algún tipo de función.
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: BATCH: Como puedo usar dos comandos en una sola linea?
« Respuesta #6 en: 6 Julio 2010, 22:25 pm »

Código
  1. @echo off
  2.  
  3. for /f "tokens=*" %%_ in ('dir /b *.*') do (
  4.        echo Archivo "%%_" en %CD%
  5. )

funciona, solo le faltaba una comilla dentro del in,


saludos =)

Cierto, gracias, lo escribí aquí mismo.
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
gh1E

Desconectado Desconectado

Mensajes: 229



Ver Perfil
Re: BATCH: Como puedo usar dos comandos en una sola linea?
« Respuesta #7 en: 6 Julio 2010, 23:41 pm »



Omg!!!!! :D

Son unos "hps" maestros  ;-), no saben cuanto me ayudan con esa solución, y son mas maestros todavía el poder haber entendido lo q necesito  ;D ;D ;D ;D :laugh: :laugh:

El codigo final es el siguiente que me sirvio;

Código:
@echo off
for /f "tokens=*" %%_ in ('dir /b *.txt') do (
        echo Archivo de texto %%_
) >> doc.txt
echo No puedes modificar >> doc.txt
start doc.txt
exit

Ahora si me pueden explicar un poquito nada mas que significa la segunda línea sería perfecto  :P "for /f "tokens=*" %%_ in ('dir /b *.txt') do ("

Por eso es q adoro este foro, ayudan siempre tratando de q todos aprendamos  :silbar:

Salu2  ::)
En línea

Si no lo sabes...averigua...
SEr o nO SeR ...( y eso a quien le importa???)
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: BATCH: Como puedo usar dos comandos en una sola linea?
« Respuesta #8 en: 6 Julio 2010, 23:46 pm »

Código:
for /f "tokens=*" %%_ in ('dir /b *.txt') do (Acciones)

/f : Opción especial para trabajar con archivos, con cadenas o con salidas de comandos.

"tokens=*" : Quiere decir que quiero absolutamente toda la salida del comandos, en este caso : dir /b

%%_ in : %%_ es una variable temporal que solo será accesible dentro del bucle FOR, al salir de este será destruida.

('dir /b *.txt') : Se procesa la salida del comando "dir /b". Usando comillas simples ' ' se procesan salidas de comandos.

Saludos.
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
gh1E

Desconectado Desconectado

Mensajes: 229



Ver Perfil
Re: BATCH: Como puedo usar dos comandos en una sola linea?
« Respuesta #9 en: 7 Julio 2010, 00:37 am »


Hi bro;

Pues muchas gracias por la info y toda tu ayuda, muy clara. Espero poder colaborarte en algún momento tambien.

Salu2 y mucha suerte.  ::)
En línea

Si no lo sabes...averigua...
SEr o nO SeR ...( y eso a quien le importa???)
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

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