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


 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Acciones sobre archivos de texto. [Batch]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 2 [3] 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ... 35 Ir Abajo Respuesta Imprimir
Autor Tema: Acciones sobre archivos de texto. [Batch]  (Leído 346,770 veces)
ovpaez

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #20 en: 28 Agosto 2009, 15:14 »

ok.. en el archivo de texto tengo la palabra usuario la cual se va a reemplazar dinamicamente con lo q traiga una variable... ya q  plantilla.inf es mi  archivo plano es una plantilla .. alli coloque usu en vez de la variable (pero es un ejemplo).. pero el codigo que te coloque hace el reemplazo de la variable perfectamente.. alli no tengo problemas.. pero necesito seguir ejecutando instrucciones.. pero primero necesito reemplazar ese archivo completamente y luego ejecutar ese archivo que estoy reemplazando ya que es una plantilla de politica se seguridad de windows... obvio todo dentro del mismo Script... Espero me haya sabido explicar... 


En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #21 en: 1 Septiembre 2009, 17:23 »

¿Y el contenido del archivo?
¿Como se yo donde debo reemplazar?... para eso es el contenido del archivo.


En línea

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

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Acciones sobre archivos de texto. [Batch]
« Respuesta #22 en: 1 Septiembre 2009, 17:34 »

Código:
[Unicode]
Unicode=yes
[Version]
signature="$CHICAGO$"
Revision=
[Event Audit]
[Registry Values]
MACHINE\SOFTWARE\policies\Microsoft\windows NT\DCOM\MachineAccessRestriction=1,"O:BAG:BAD:(A;;CCDC;;;AN)(A;;CCDCLC;;;WD)(A;;CCDCLC;;;usuario)"
MACHINE\SOFTWARE\policies\Microsoft\windows NT\DCOM\MachineLaunchRestriction=1,"O:BAG:BAD:(A;;CCDC;;;AN)(A;;CCDCLC;;;WD)(A;;CCDCLC;;;usuario)"
[Privilege Rights]
SeSecurityPrivilege = *usuario
[File Security]
"%SystemDrive%\DOCS",0,"D:PAR(A;OICI;FA;;;BA)(A;OICIIO;FA;;;CO)(A;OICI;0x1301bf;;;usuario)(A;OICI;FA;;;SY)(A;OICI;0x1200a9;;;BU)"







Ese es el archivo a reemplazar.. y la palabra usuario es la q se va a reemplazar por usu como te puse el codigo anteriormente...

pero despues de reemplazar... desde del eof se cierra y no ejecuta otra instruccion la solucion fue hacer dos .bat pero es demasiado ineficiente se q se puede hacer en el mismo script eso creo!!?????



« Última modificación: 2 Septiembre 2009, 04:23 por Leo Gutierrez. » En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #23 en: 2 Septiembre 2009, 05:12 »

Mira, si es que he entendido lo que quieres hacer, pues es fácil.

Lo explicaré:

Suponiendo que queremos cambiar una linea en el archivo "file.txt" (Esto lo modificas a tu gusto):
Código:
C:\>type "FILE.TXT"
[Unicode]
Unicode=yes
[Version]
signature="$CHICAGO$"
Revision=
[Event Audit]
[Registry Values]
MACHINE\SOFTWARE\policies\Microsoft\windows NT\DCOM\MachineAccessRestriction=1,"
O:BAG:BAD:(A;;CCDC;;;AN)(A;;CCDCLC;;;WD)(A;;CCDCLC;;;usuario)"
MACHINE\SOFTWARE\policies\Microsoft\windows NT\DCOM\MachineLaunchRestriction=1,"
O:BAG:BAD:(A;;CCDC;;;AN)(A;;CCDCLC;;;WD)(A;;CCDCLC;;;usuario)"
[Privilege Rights]
SeSecurityPrivilege = Este es mi texto
[File Security]
"%SystemDrive%\DOCS",0,"D:PAR(A;OICI;FA;;;BA)(A;OICIIO;FA;;;CO)(A;OICI;0x1301bf;
;;usuario)(A;OICI;FA;;;SY)(A;OICI;0x1200a9;;;BU)"

C:\>

Ejecutamos este codigo:
Código
  1. @echo off
  2. for /f "tokens=1 delims=:" %%_ in ('type "file.txt" ^| findstr /r /n "^SeSecurityPrivilege"') do (
  3. set "linea=%%_"
  4. )
  5. if not defined linea (
  6. echo No hay coincidencia.
  7. echo El programa cerrara ahora.
  8. set /p =
  9. exit /b 1
  10. )
  11. set "contenido=Este es mi texto" // Esto es por lo que se cambiara
  12. echo Linea a editar : %linea%
  13. echo Se editara por : SeSecurityPrivilege = %contenido%
  14. (
  15. echo %linea%
  16. echo SeSecurityPrivilege = %contenido%
  17. ) | edlin /b file.txt > nul 2>&1
  18. for /l %%_ in (1,1,3) do echo.
  19. type "file.txt"
  20. set /p =

El codigo buscara la linea a editar y la cambiara por esto:
Código:
echo SeSecurityPrivilege = %contenido%

Despues de ejecutar el codigo:

C:\>code.bat
Linea a editar : 11
Se editara por : SeSecurityPrivilege = Este es mi texto

Código:
[Unicode]
Unicode=yes
[Version]
signature="$CHICAGO$"
Revision=
[Event Audit]
[Registry Values]
MACHINE\SOFTWARE\policies\Microsoft\windows NT\DCOM\MachineAccessRestriction=1,"
O:BAG:BAD:(A;;CCDC;;;AN)(A;;CCDCLC;;;WD)(A;;CCDCLC;;;usuario)"
MACHINE\SOFTWARE\policies\Microsoft\windows NT\DCOM\MachineLaunchRestriction=1,"
O:BAG:BAD:(A;;CCDC;;;AN)(A;;CCDCLC;;;WD)(A;;CCDCLC;;;usuario)"
[Privilege Rights]
SeSecurityPrivilege = Este es mi texto
[File Security]
"%SystemDrive%\DOCS",0,"D:PAR(A;OICI;FA;;;BA)(A;OICIIO;FA;;;CO)(A;OICI;0x1301bf;
;;usuario)(A;OICI;FA;;;SY)(A;OICI;0x1200a9;;;BU)"


C:\>
Saludos.
En línea

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

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #24 en: 2 Septiembre 2009, 18:04 »

Q pena  :-[

Bueno Creo que entendi el codigo que me diste.. Peroooo si te diste cuenta en el archivo hay varios sitios donde se encuentra la palabra usuario... Y lo de reemplazar las palabras que quiero en el archivo de texto ya eso lo programe este es el codigo
Código
  1. if %1'==' (set p1=usuario
  2. set p2=%varusuario%
  3. set p3=Plantilla.inf) else (set p1=%1&& set p2=%2&& set p3=%3)
  4. echo.>$
  5. for /f "tokens=1,* delims=]" %%A in ('"type %p3%|find /n /v """') do (
  6.     set "current=%%B"
  7.     if defined current (
  8. call :stng %p1% %p2%
  9.     ) else echo.>>$
  10. )
  11. type $>%p3%
  12. type %p3%
  13. :stng
  14. call set current=%%current:%1=%2%%
  15. echo %current%>>$
  16.  
  17. goto : EOF
  18.  



Ese codigo me reemplaza en el archivos todas las palabras usuario por usu, por el SID o variable que yo desee... Ese codigo va dentro de un bat donde se encuentran otras instrucciones...
Código:
if %1'==' (set p1=usuario
set p2=%varusuario%
set p3=Plantilla.inf) else (set p1=%1&& set p2=%2&& set p3=%3)
 echo.>$
 for /f "tokens=1,* delims=]" %%A in ('"type %p3%|find /n /v """') do (
     set "current=%%B"
     if defined current (
call :stng %p1% %p2%
     ) else echo.>>$
 )
 type $>%p3%
 type %p3%
 :stng
 call set current=%%current:%1=%2%%
 echo %current%>>$

goto : EOF

secedit /configure /cfg plantilla.inf /db secsetup.sdb /verbose

:: ------- Firewall-----
netsh.exe firewall set service type=REMOTEADMIN mode=ENABLE scope=ALL    
netsh.exe firewall show state

echo Configure los permisos del WMI con el usuario %filecontent% y luego presione Enter
pause

net stop winmgmt
net start winmgmt

Shutdown -r -t 00

Este es el bat

Como ya te he dicho lo hace todo pero hasta el eof ya la siguientes instrucciones no las realiza... y necesito q se ejecute todo :( y todo se debe realizar en un Script  para darle click y ya







« Última modificación: 14 Marzo 2011, 22:49 por Leo Gutiérrez. » En línea

ovpaez

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #25 en: 14 Septiembre 2009, 16:37 »

Se cerro el tema ??? :huh:
En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #26 en: 14 Septiembre 2009, 16:45 »

No, claro que no, solo se olvido tu duda.

Una pregunta, ¿aceptarías una solución en Perl?, por que no tengo acceso a sistemas con Windows.
En línea

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

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #27 en: 17 Octubre 2009, 16:11 »

Buenos tardes! :D

Me gustaría saber como ejecutar un bat o si hay un programa ya para modificar unos archivos de texto para eliminar ciertas palabras o lineas y que te lo guarde sin crear archivos a parte.

por ejemplo tengo 100 txt

y en todos quiero eliminar la palabra 'señor', reemplazar 'río' por 'lago' y cuando encuentre 'mar' eliminar desde 'mar' hasta la última linea o poder eliminar 6 ultimas lineas ;)

Quien me puede echar una mano?
En línea

0x0309

Desconectado Desconectado

Mensajes: 215


Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #28 en: 17 Octubre 2009, 16:38 »

mira, lo mejor es que utilices un programa que te haga el trabajo, y simplemente lo llamas con parámetros.
Hay uno muy bueno que se llama gsar.exe

Código:
http://gnuwin32.sourceforge.net/packages/gsar.htm

Esta es su ayuda:

Código:
gsar, ver 1.21 -- Copyright (C) 1992-2008 Tormod Tjaberg & Hans Peter Verne

Usage: gsar [options] [infile(s)] [outfile]
Options are:
-s<string> Search string
-r[string] Replace string. Use '-r' to delete the search string from the file
-i         Ignore case difference when comparing strings
-B         just display search & replace Buffers
-f         Force overwrite of an existing output file
-o         Overwrite the existing input file
-c[n]      show textual Context of match, 'n' is number of bytes in context
-x[n]      show context as a heX dump, 'n' is number of bytes in context
-b         display Byte offsets of matches in file
-l         only List filespec and number of matches (default)
-h         suppress display of filespec when displaying context or offsets
-du        convert a DOS ASCII file to UNIX (strips carriage return)
-ud        convert a UNIX ASCII file to DOS (adds carriage return)
-F         'Filter' mode, input from stdin and eventual output to stdout
-G         display the GNU General Public Licence

Ctrl characters may be entered by using a ':' in the string followed by the
ASCII value of the character. The value is entered using ':' followed by three
decimal digits or ':x' followed by two hex numbers. To enter ':' use '::'

Por ejemplo yo tengo el siguiente script para modificar rápidamente el boot.ini y activar dep para todos los programas y servicios. Esto normalmente, se hace yendo a Propiedades de pc ... y varios clics. En cambio yo automaticé el proceso. Activar dep para todos los programas es para aumentar la seguridad del equipo y que no te vulneren el sistema operativo con drivers.

Código:
@echo off
reg.exe delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /f >nul 2>&1
(set file=%SystemDrive%\boot.ini)
attrib.exe -a -s -h -r "%file%" >nul 2>&1
gsar.exe -i -o -sNoExecute=OptIn -rNoExecute=OptOut "%file%" >nul 2>&1
if not errorlevel 1 (
reg.exe add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\NoExecuteState" /v LastNoExecuteRadioButtonState /t REG_DWORD /d 13013 /f >nul 2>&1
)
attrib.exe +a +s +h +r "%file%" >nul 2>&1

Lo que hace mi código es reemplazar en el boot.ini:
NoExecute=OptIn
por
NoExecute=OptOut

Si es que existe el texto OptIn, sino devuelve errorlevel 1 que significa que no reemplazo nada porque no encontró el texto de entrada en el archivo.

Yo te recomiendo este programa porque lo he probado y funciona bien.
En línea

P3YOX

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #29 en: 28 Octubre 2009, 05:32 »

BUENAS  Soy bastante novato  En esto del batch pero  copiando y pagando analisando he conseguido resultados  pero aún asi no me alcansa la suerte es por eso que necesito tu ayuda  ^^   tengo un batch  pesca un archivo de texto y lo  ingresa a una variante  y  ese contenido  lo transformo  sin ningun problema  EL  PROBLEMA SE PRODUCE  que no puedo encontrar un codigo queme tome  todo  el contenido del texto y me lo ingrese a mi  variante solo conseguí uno  que me  tome la primera linea  no todo el contenido del txt  esto es lo  que tengo

Citar
echo.
for /f  %%a in (nuevo.txt) do (
set var=%%a
goto next)
:next
echo %var:~0%
set var=%var:~0%
etc
etc...

Y tambien la posivilidad d eke  me  intregre  varios archivos de  texto con  nombrs en comun ala variante  como por ejemplo  un  *00.txt
de antemanos gracias
« Última modificación: 29 Octubre 2009, 04:38 por P3YOX » En línea

Páginas: 1 2 [3] 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ... 35 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Modificar archivos de texto [batch] [Perl] « 1 2 »
Scripting
bjeli1980 10 9,962 Último mensaje 17 Mayo 2010, 09:07
por bjeli1980
[BATCH] Ayuda guardando archivos de texto a php
Scripting
Geormarsch 2 2,678 Último mensaje 20 Septiembre 2011, 16:33
por Poderoscuro1207
[BATCH] [APORTE] Rutina TEXTMAN para manipular archivos de texto
Scripting
Eleкtro 2 5,248 Último mensaje 15 Marzo 2014, 15:17
por FranciskoAsdf
Como puedo arrastrar y concatenar archivos de texto en un BATCH
Scripting
PUCH84 6 6,680 Último mensaje 28 Abril 2014, 09:49
por PUCH84
Ayuda con batch para crear archivos de texto plano
Scripting
seu230 6 805 Último mensaje 5 Octubre 2018, 10:28
por seu230
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines