Comunidad Underground Hispana  

Retroceder   Comunidad Underground Hispana > Programacion > Batch


Respuesta Crear Nuevo Tema
 
Compartir en twitter LinkBack Herramientas Desplegado
Antiguo 29-jun-2012, 04:04   #1
Recien llegado
 
Fecha de Ingreso: junio-2012
Amigos 0
Mensajes: 7
Gracias: 1
Agradecido 0 veces en 0 mensajes.
Predeterminado Problema con caracteres en variables

Hola,
Tengo un problema al ejecutar mis scripts cuando la variable contiene caracteres del tipo ( ) % ! o cosas similares.
Lo que tengo ahora mismo es:
un fichero config.cfg donde escribo
user:usuario
password: password
y luego ejecuto un archivo run.bat que lee ese config.cfg
Lo que hace es psexec -u %user% -p %password%
El codigo:
Código:
for /F "eol=; tokens=1,2 delims=:" %%i in (config.cfg) do (
if %%i==SETUP_DIR (set SETUP_DIR=%%j)
if %%i==USER (set USER=%%j)
if %%i==PASSWORD (set PASSWORD=%%j)
if %%i==REMOTE (set REMOTE=%%j)
)
  
¿Como puedo hacer para que %password% lo lea literalmente?
He probado usando "" ' ' pero nada... Si el password tiene caracteres raros se para todo

Gracias!
Reister está desconectado   Responder Citando
Antiguo 30-jun-2012, 02:27   #2
Moderador y merodeador :=
 
Avatar de EleKtro H@cker
 
Fecha de Ingreso: marzo-2011
Ubicación: Valencia city, Spain
Amigos 17
Mensajes: 986
Gracias: 1.959
Agradecido 340 veces en 245 mensajes.
Predeterminado Respuesta: Problema con caracteres en variables

pon el contenido del config.cfg exactamente como es, y luego ya hablamos de corregirtelo xD, ya que por lo que veo en el for no es solamente una linea con "user" y otra con "password", no se como quieres que te corrigan si no pones el contenido.

Todos esos caracteres son operadores de Batch. Para mostrarlos debidamente tienes que escaparlos. (^&), En el caso del simbolo de porcentaje, tienes que repetirlo dos veces (%%).

Salu2.



EDITO:
Config.cfg
Código:
user:Elektro
pass:H@cker
  

Test.bat
Código:
@Echo OFF

for /F "tokens=1,* delims=:" %%A in (config.cfg) do (
    iF /I "%%A" EQU "user" (Set "User=%%B")
    iF /I "%%A" EQU "pass" (Set "Pass=%%B")
)

Echo %%USER%%=%USER%
Echo %%PASS%%=%PASS%
pause
  

Última edición por EleKtro H@cker; 30-jun-2012 a las 02:37
EleKtro H@cker está desconectado   Responder Citando
Antiguo 04-jul-2012, 05:21   #3
Recien llegado
 
Fecha de Ingreso: junio-2012
Amigos 0
Mensajes: 7
Gracias: 1
Agradecido 0 veces en 0 mensajes.
Predeterminado Respuesta: Problema con caracteres en variables

Muchas gracias!
Esto me arregla para caracteres como % o () pero con caracteres ! siguen sin aparecer
Se puede hacer algo?
También tengo problemas luego en la ejecución del comando:

psexec -u %user -p %password%

Me da error, me dice no se esperaba -p (si lo pongo "%user%" si funciona, pero el comando psexec procesa los " y no funciona...)
Reister está desconectado   Responder Citando
Antiguo 04-jul-2012, 07:52   #4
Moderador y merodeador :=
 
Avatar de EleKtro H@cker
 
Fecha de Ingreso: marzo-2011
Ubicación: Valencia city, Spain
Amigos 17
Mensajes: 986
Gracias: 1.959
Agradecido 340 veces en 245 mensajes.
Predeterminado Respuesta: Problema con caracteres en variables

Cita:
Iniciado por Reister Ver Mensaje
con caracteres ! siguen sin aparecer Se puede hacer algo?
Cita:
Iniciado por elektro h@cker Ver Mensaje
pon el contenido del config.cfg exactamente como es, y luego ya hablamos de corregirtelo


Cita:
Iniciado por reister Ver Mensaje
muchas gracias!
Psexec -u %user -p %password%

me dice no se esperaba -p
%user no es una variable, %user% si

De todas formas tienes que cerrar cualquier argumento con comillas dobles si el usuario o el pass contienen espacios (Y si no, tambien, por precaucion y hacer las cosas bien.)... así que el comando quedaría así:


Código:
Psexec -u "%user%" -p "%password%"
  
saludos.
EleKtro H@cker está desconectado   Responder Citando
Antiguo 04-jul-2012, 09:23   #5
Recien llegado
 
Fecha de Ingreso: junio-2012
Amigos 0
Mensajes: 7
Gracias: 1
Agradecido 0 veces en 0 mensajes.
Predeterminado Respuesta: Problema con caracteres en variables

Si, lo puse rápido el %user me faltó el %user%,
De todas formas sigo teniendo el problema con el signo de exclamación.
Si está en el config.cfg nunca me sale cuando hago un echo o cuando hago
psexec -u %user%

Última edición por Reister; 04-jul-2012 a las 09:50
Reister está desconectado   Responder Citando
Antiguo 04-jul-2012, 09:52   #6
kj
Moderador
 
Fecha de Ingreso: noviembre-2006
Amigos 4
Mensajes: 2.635
Gracias: 3
Agradecido 294 veces en 210 mensajes.
Predeterminado Respuesta: Problema con caracteres en variables

tienes enabledelayedexpansion?

kj
__________________

[Solo usuarios registrados pueden ver los links. REGISTRARSE]

kj está desconectado   Responder Citando
Antiguo 04-jul-2012, 10:25   #7
Recien llegado
 
Fecha de Ingreso: junio-2012
Amigos 0
Mensajes: 7
Gracias: 1
Agradecido 0 veces en 0 mensajes.
Predeterminado Respuesta: Problema con caracteres en variables

Si, tengo enabledelayedexpansion
Reister está desconectado   Responder Citando
Antiguo 04-jul-2012, 17:28   #8
Habitual
 
Avatar de diegox64
 
Fecha de Ingreso: marzo-2011
Ubicación: encarnacion, paraguay
Amigos 11
Mensajes: 197
Gracias: 31
Agradecido 38 veces en 35 mensajes.
Predeterminado Respuesta: Problema con caracteres en variables

prueva poniendole mas escapes "^" pero con el enabledelayedexpansion, es dificil mostrar el caracter.
Saludos
__________________
DiegoX64

3E!

quieres saber de que es capaz el colous.exe??:

[Solo usuarios registrados pueden ver los links. REGISTRARSE]

diegox64 está desconectado   Responder Citando
Antiguo 05-jul-2012, 12:49   #9
Moderador y merodeador :=
 
Avatar de EleKtro H@cker
 
Fecha de Ingreso: marzo-2011
Ubicación: Valencia city, Spain
Amigos 17
Mensajes: 986
Gracias: 1.959
Agradecido 340 veces en 245 mensajes.
Predeterminado Respuesta: Problema con caracteres en variables

Cita:
Iniciado por Reister Ver Mensaje
sigo teniendo el problema con el signo de exclamación.
Si está en el config.cfg nunca me sale
Cita:
Iniciado por elektro h@cker Ver Mensaje
pon el contenido del config.cfg exactamente como es, y luego ya hablamos de corregirtelo
( x3 )

Esto me parece una falta de cooperatividad... en serio...


PD: Diegox64 creo que lo que le sugieres es imposible mientras el siga manteniendo habilitada la expansión.
Porque esta persona intenta leer el contenido de un txt, Si primeramente no reconoce el caracter "!", no puede tomar correctamente la linea del texto, por lo tanto no puede setearla con el caracter "!" incluido para luego manipular la variable y escaparlo (Set "Var=%Var:!=^^^!%").


Lo que debes hacer, Es esto:

Código:
@Echo off
Setlocal enabledelayedexpansion
blablabla tú código...

REM Este comando lo pones antes de leer el misterioso config.cfg:
Setlocal DISABLEdelayedexpansion

REM aqui haces tus cosas con el psexec y los caracteres especiales.

REM Depsues de haber hecho lo que quisiste vuelves a habilitar la expansión:
Setlocal enabledelayedexpansion

blablabla aquí sigues con tú código... y FIN.
  
Saludos...
EleKtro H@cker está desconectado   Responder Citando
El Siguiente Usuario Agradeció a EleKtro H@cker Por Este Mensaje:
Reister (10-jul-2012)
Antiguo 10-jul-2012, 03:09   #10
Recien llegado
 
Fecha de Ingreso: junio-2012
Amigos 0
Mensajes: 7
Gracias: 1
Agradecido 0 veces en 0 mensajes.
Predeterminado Respuesta: Problema con caracteres en variables

Gracias, y perdona por no poner el contenido del config.cfg como es, pero es que NO tengo un config.cfg específico, estoy intentando ponerme en todos los casos...
Creo que el mensaje se entiende, leer ! de una variable, aún así, la próxima vez, pondré ejemplos concretos de problemas concretos.
MUCHAS GRACIAS
Reister está desconectado   Responder Citando
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
Crakeador de claves de windows 7 en batch puro. pacosn1111 Batch 1 23-jun-2012 13:34
Siemens PLM NX 7.5.4.4 MP05 (CAD/CAM/CAE ) schiavi13 Software 0 11-dic-2011 14:41
[Guia] Perl Forever Doddy Perl 0 01-ago-2011 20:05
Microsoft grave problema de seguridad "compartido" [250810] pamda Noticias 0 25-ago-2010 12:29
[G] Condicionales, variables y etiquetas kj Batch 0 21-feb-2010 09:06



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.0