elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
29 Mayo 2012, 09:21  


Tema destacado: ¡Aprende hacking con práctica! - WarZone, el wargame de elhacker.net

+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting (Moderadores: Novlucker, Leo Gutiérrez., EleKtro H@cker)
| | |-+  -> Programación BATCH Avanzada. (nuevo)
0 Usuarios y 3 Visitantes están viendo este tema.
Páginas: 1 2 3 4 5 6 7 8 9 10 11 [12] Ir Abajo Respuesta Imprimir
Autor Tema: -> Programación BATCH Avanzada. (nuevo)  (Leído 187,261 veces)
Leo Gutiérrez.
. . .. ... ..... ........ ............. .....................
Moderador
***
Desconectado Desconectado

Mensajes: 2.968


/^$/


Ver Perfil WWW
Re: -> Programación BATCH Avanzada. (nuevo)
« Respuesta #165 en: 27 Agosto 2011, 21:13 »

Soy nuevo en el foro y me disculpan si violo alguna regla, pero la verdad necesito con urgencia que me ayuden con ese código; necesito borrar un archivo que contenga una cadena de texto específica; ejemplo, borrar archivos .ini que contengan la palabra "MusicAlbum" en todo el disco duro, muchas gracias por su ayuda.

¿El archivo dónde se encuentra?
El usuario da el archivo a borrar o se tiene que buscar antes?

Da más datos si quieres que se te ayude.

¿por qué la urgencia?


En línea

Código
(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}
 

leorocko13@hotmail.com
https://github.com/leogtzr/
almacenero

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: -> Programación BATCH Avanzada. (nuevo)
« Respuesta #166 en: 7 Noviembre 2011, 11:38 »

Muchísimas gracias sirdarckcat. Un tuto cojonudo.


En línea
pablgonz

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: -> Programación BATCH Avanzada. (nuevo)
« Respuesta #167 en: 23 Noviembre 2011, 04:11 »

Hola a todos, soy nuevo en el foro (lo leía pero no estaba registrado) tengo una duda habitual en la red sobre FOR y rename, pero, esta es para una cadena de archivos especifica (la idea es hacerlo con la linea de comando y no con programas externos) va así, estoy dentros del directorio temp, y en el hay un sub directorio imágenes, en este directorio  tengo una serie de archivos de las siguiente forma
Código
name-tmp-000001.ppm, name-tmp-000002.ppm, name-tmp-000003.ppm,... 
donde name puede ser cualquier carácter (alfanumérico,_,etc.) y -tmp- siempre esta presente, lo que deseo es re nombrarlos para que queden así:
Código
name-tmp-1.ppm, name-tmp-2.ppm, name-tmp-3.ppm,... 
usando FOR y rename, ¿es posible?, con una perl1linea  se que puedo, pero, necesito saber como hacerlos (si es posible) desde la linea de comando, pera poder incluirlo dentro de un script.
De Antemano muchas gracias
Pablo
« Última modificación: 23 Noviembre 2011, 04:14 por pablgonz » En línea
Leo Gutiérrez.
. . .. ... ..... ........ ............. .....................
Moderador
***
Desconectado Desconectado

Mensajes: 2.968


/^$/


Ver Perfil WWW
Re: -> Programación BATCH Avanzada. (nuevo)
« Respuesta #168 en: 23 Noviembre 2011, 06:27 »

El orden importa?

Es decir,

name-tmp-000001.ppm, name-tmp-000002.ppm, name-tmp-000003.ppm,...

podría quedar:

name-tmp-3.ppm, name-tmp-5.ppm, name-tmp-1.ppm,... ?

No importa que el nombre (name), no coincida con el número?
En línea

Código
(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}
 

leorocko13@hotmail.com
https://github.com/leogtzr/
pablgonz

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: -> Programación BATCH Avanzada. (nuevo)
« Respuesta #169 en: 23 Noviembre 2011, 11:06 »

Hola, gracias por la pronta respuesta, la verdad es que el orden importa:
Código
name-tmp-000001.ppm, name-tmp-000002.ppm, name-tmp-000003.ppm,...
debería  quedar:
Código
name-tmp-1.ppm, name-tmp-2.ppm, name-tmp-3.ppm,...
algo como «truncar los ceros» (si es que se le puede llamar asi), otro dato 000001.ppm es una cantidad fija de números, me explico, puedes ser eso o 000099.ppm o 000999.ppm, sucesivamente, es decir, es el contador del archivo pero completado con ceros hacia la izquierda.
Gracias por la respuesta, a ver si me pueden ayudar con este problema.
En línea
Leo Gutiérrez.
. . .. ... ..... ........ ............. .....................
Moderador
***
Desconectado Desconectado

Mensajes: 2.968


/^$/


Ver Perfil WWW
Re: -> Programación BATCH Avanzada. (nuevo)
« Respuesta #170 en: 24 Noviembre 2011, 01:18 »

Teniendo estos archivos:

Código:
C:\Users\leo\batch\temp>dir /b
a-tmp-000001.ppm
b-tmp-000009.ppm
c-tmp-000006.ppm
e-tmp-000010.ppm
final.cmd
h-tmp-000004.ppm
j-tmp-000003.ppm
n-tmp-000002.ppm
otro.cmd
u-tmp-000008.ppm
x-tmp-000005.ppm
y-tmp-000007.ppm
z-tmp-000011.ppm

C:\Users\leo\batch\temp>

Luego de correr el script:


Código:
C:\Users\leo\batch\temp>final.cmd

C:\Users\leo\batch\temp>
Me queda así finalmente:

Código:
C:\Users\leo\batch\temp>dir /b
a-tmp-1.ppm
b-tmp-9.ppm
c-tmp-6.ppm
e-tmp-10.ppm
final.cmd
h-tmp-4.ppm
j-tmp-3.ppm
n-tmp-2.ppm
otro.cmd
u-tmp-8.ppm
x-tmp-5.ppm
y-tmp-7.ppm
z-tmp-11.ppm

C:\Users\leo\batch\temp>
El script es este:

Código
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1,2,3 delims=-" %%a in ('dir /b *.ppm') do (
set "string=%%c"
set "string=!string:.ppm=!
for /f "
tokens=* delims=0" %%A IN ("%string%") do set string=%%A
ren "
%%a-%%b-%%c" "%%a-%%b-!string!.ppm"
)

Prueba si te funciona, saludos.
En línea

Código
(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}
 

leorocko13@hotmail.com
https://github.com/leogtzr/
pablgonz

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: -> Programación BATCH Avanzada. (nuevo)
« Respuesta #171 en: 24 Noviembre 2011, 02:23 »

Hola de nuevo, gracias por responder, lamentablemente no me funciono, va así
Código
C:\testv3\testv3\temp\dir /b
cambia.cmd
test-tmp-000001.ppm
test-tmp-000002.ppm
test-tmp-000003.ppm
test-tmp-000004.ppm
test-tmp-000005.ppm
 
luego de correr el script
Código
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1,2,3 delims=-" %%a in ('dir /b *.ppm') do (
set "string=%%c"
set "string=!string:.ppm=!
for /f "tokens=* delims=0" %%A IN ("%string%") do set string=%%A
ren "%%a-%%b-%%c" "%%a-%%b-!string!.ppm"
)
resulta lo siguiente
Código
cambia.cmd
test-tmp-000001.ppm
test-tmp-000002.ppm
test-tmp-000003.ppm
test-tmp-000004.ppm
test-tmp-000005.ppm
Es decir, no efectúa el cambio indicado, quizás debí comentar que todos los ficheros tienen el mismo nombre, el cual deseo mantener, solo me interesa eliminar los ceros a la izquierda del contador, esperando su ayuda, se despide:
Pablo
En línea
Leo Gutiérrez.
. . .. ... ..... ........ ............. .....................
Moderador
***
Desconectado Desconectado

Mensajes: 2.968


/^$/


Ver Perfil WWW
Re: -> Programación BATCH Avanzada. (nuevo)
« Respuesta #172 en: 25 Noviembre 2011, 17:51 »

Perdón por la tardanza.

Creo que ya funciona, el error era que en el for interno, estaba utilizando los caracteres %% para interpolar la variable, y tenía que ser !!.

Mira:

Código:
C:\Users\leo\batch\temp>dir /b
final.cmd
name-tmp-0000001.ppm
name-tmp-00000010.ppm
name-tmp-00000011.ppm
name-tmp-0000002.ppm
name-tmp-0000003.ppm
name-tmp-0000004.ppm
name-tmp-0000005.ppm
name-tmp-0000006.ppm
name-tmp-0000007.ppm
name-tmp-0000008.ppm
name-tmp-0000009.ppm
otro.cmd

C:\Users\leo\batch\temp>type final.cmd
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1,2,3 delims=-" %%a in ('dir /b *.ppm') do (
        set "string=%%c"
        set "string=!string:.ppm=!
        for /f "tokens=* delims=0" %%A IN ("!string!") do set string=%%A
        ren "%%a-%%b-%%c" "%%a-%%b-!string!.ppm"
)
C:\Users\leo\batch\temp>final.cmd

C:\Users\leo\batch\temp>dir /b
final.cmd
name-tmp-1.ppm
name-tmp-10.ppm
name-tmp-11.ppm
name-tmp-2.ppm
name-tmp-3.ppm
name-tmp-4.ppm
name-tmp-5.ppm
name-tmp-6.ppm
name-tmp-7.ppm
name-tmp-8.ppm
name-tmp-9.ppm
otro.cmd

C:\Users\leo\batch\temp>
En línea

Código
(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}
 

leorocko13@hotmail.com
https://github.com/leogtzr/
pablgonz

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: -> Programación BATCH Avanzada. (nuevo)
« Respuesta #173 en: 25 Noviembre 2011, 22:02 »

Gracias por la respuesta, ahora funciona al 100%.
En línea
Nefkofan

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: -> Programación BATCH Avanzada. (nuevo)
« Respuesta #174 en: 21 Febrero 2012, 04:56 »

TxShack


bueno al parecer tienes unos pequeños errorcillos

  • falta un echo en la sexta linea
  • Debes agregar otro %% para que se imprima %clave%

Código:
@echo off
Rem yo lo probe en mi pc desde el escritorio eliminando esta linea
cd c:\
echo @echo off > pass.bat
echo :menu >> pass.bat
echo echo. >> pass.bat
echo echo INTRODUCIR CLAVE >> pass.bat
echo echo. >> pass.bat
echo set/p clave= >> pass.bat
echo if %%clave%%==fark (goto bien) else goto :menu >> pass.bat
echo :bien >> pass.bat
echo cls >> pass.bat
echo echo. >> pass.bat
echo echo ACCESO VALIDADO >> pass.bat
echo echo. >> pass.bat
echo pause >> pass.bat
echo exit >> pass.bat
Rem esta linea tampoco la use el objetibo de la prueba era que pass.bat se ejecutara y lo logro exitosamente
reg add hkey_local_machine\software\microsoft\windows\currentversion\run /v pass.bat /t reg_sz /d C:\ /f
Rem yo use la linea start %cd%\pass.bat por practicidad al momento de realizar pruebas
start c:\pass.bat
exit[/code
Espero te sea de utilidad  ;)
En línea
Nefkofan

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: -> Programación BATCH Avanzada. (nuevo)
« Respuesta #175 en: 21 Febrero 2012, 04:59 »

Bueno, queria saber si me podriais ayudar con este batch

Lo que quiero es que se añada al registro run pero no consigo hacerlo... algo debo de acer malalgo.. pero no se que... ace muchisimo que no uso los batch, porq se me daban bien.. pero se me an olvidado cosas poco a poco y aora no me sale esto

El codigo que qiero q salga es este:

Lo e estado intentando varias veces pero no lo consigo... e provado esto.. poro no funciona

Estare aciendo algo mal.. pero no se que... la cuestion es q no funciona..

Provadlo y vereis, y si me podeis ayudar os lo agradeceria ^^

bueno, y una ultima cosa... q tendria q añadirle para que quien lo ejecute no pueda dar a la X.. osea, q si intenta cerrar no pueda. Gracias

Un saludo

TxShack


TxShack


bueno al parecer tienes unos pequeños errorcillos

  • falta un echo en la sexta linea
  • Debes agregar otro %% para que se imprima %clave%

Código:
@echo off
Rem yo lo probe en mi pc desde el escritorio eliminando esta linea
cd c:\
echo @echo off > pass.bat
echo :menu >> pass.bat
echo echo. >> pass.bat
echo echo INTRODUCIR CLAVE >> pass.bat
echo echo. >> pass.bat
echo set/p clave= >> pass.bat
echo if %%clave%%==fark (goto bien) else goto :menu >> pass.bat
echo :bien >> pass.bat
echo cls >> pass.bat
echo echo. >> pass.bat
echo echo ACCESO VALIDADO >> pass.bat
echo echo. >> pass.bat
echo pause >> pass.bat
echo exit >> pass.bat
Rem esta linea tampoco la use el objetibo de la prueba era que pass.bat se ejecutara y lo logro exitosamente
reg add hkey_local_machine\software\microsoft\windows\currentversion\run /v pass.bat /t reg_sz /d C:\ /f
Rem yo use la linea start %cd%\pass.bat por practicidad al momento de realizar pruebas
start c:\pass.bat
exit[/code
Espero te sea de utilidad  ;)
En línea
polmadur

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Re: -> Programación BATCH Avanzada. (nuevo)
« Respuesta #176 en: 25 Abril 2012, 12:20 »

hola buenas, veréis, soy bastante novatillo en batch aunque tengo conocimientos aceptables en python así que domino la programación un poco(aunque mi estilo sea pésimo, lo reconozco).

Esta es mi duda, tengo un archivo en excel donde hay muchos nombres en diferentes páginas, cada página es un servicio de la asociación. La pregunta es si para recorrer ese archivo en busca de algún nombre en concreto se necesita algo especial, me refiero a como es un formato de texto diferente, CSV no lo se.

Si no hace falta nada especial ya me pongo yo a crear el script de busqueda.

gracias
En línea
EleKtro H@cker
Moderador
***
Desconectado Desconectado

Mensajes: 1.348


(8) I will have that power!! (8) Jarkor! :D


Ver Perfil
Re: -> Programación BATCH Avanzada. (nuevo)
« Respuesta #177 en: 25 Abril 2012, 20:55 »

La pregunta es si para recorrer ese archivo en busca de algún nombre en concreto se necesita algo especial, me refiero a como es un formato de texto diferente, CSV no lo se.

Si no hace falta nada especial ya me pongo yo a crear el script de busqueda.

No es necesario nada especial, Puedes usar el comando "FIND" y "FINDSTR" con todo archivo que contenga texto.

Código
Find "PALABRA" "ARCHIVO.CSV"
Findstr "PALABRA" "ARCHIVO.CSV"
 

Saludos!
En línea

Siempre habrá alguien más ignorante que uno mismo, Como por ejemplo el nuevo presidente de la SGAE:

"La banda ancha es totalmente innecesaria para navegar convencionalmente, Solo sirve para descargar megas y megas grandisimos, Y tal."

PD: Volviendo a la era de los 56 k.

Páginas: 1 2 3 4 5 6 7 8 9 10 11 [12] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
programacion avanzada en C...
Programación C/C++
l.Proteo.l 5 1,391 Último mensaje 1 Octubre 2005, 11:54
por Ragnarok
programacion creo que avanzada
Programación General
nixx 2 533 Último mensaje 9 Octubre 2005, 18:02
por Ragnarok
[G] Libro Programacion Avanzada en Ensamblador!!!
ASM
-Gosw- 3 3,123 Último mensaje 27 Mayo 2009, 10:40
por -Gosw-
algunas dudas en programacion BATCH(nuevo en esto de programacion)
Scripting
stock_C 8 2,191 Último mensaje 19 Junio 2009, 18:08
por frank30
[Taller] Programacion Avanzada en C/C++ (Linux)
Programación C/C++
[L]ord [R]NA 0 3,199 Último mensaje 4 Octubre 2010, 04:53
por [L]ord [R]NA
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines