![]() |
|
|
#1 |
|
Recien llegado
![]() Fecha de Ingreso: junio-2012
Amigos 0
Mensajes: 7
Gracias: 1
Agradecido 0 veces en 0 mensajes.
|
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) ) He probado usando "" ' ' pero nada... Si el password tiene caracteres raros se para todo Gracias! |
|
|
|
|
|
#2 |
|
Moderador y merodeador :=
![]() Fecha de Ingreso: marzo-2011
Ubicación: Valencia city, Spain
Amigos 17
Mensajes: 986
Gracias: 1.959
Agradecido 340 veces en 245 mensajes.
|
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 |
|
|
|
|
|
#3 |
|
Recien llegado
![]() Fecha de Ingreso: junio-2012
Amigos 0
Mensajes: 7
Gracias: 1
Agradecido 0 veces en 0 mensajes.
|
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...) |
|
|
|
|
|
#4 | |
|
Moderador y merodeador :=
![]() Fecha de Ingreso: marzo-2011
Ubicación: Valencia city, Spain
Amigos 17
Mensajes: 986
Gracias: 1.959
Agradecido 340 veces en 245 mensajes.
|
Cita:
%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%" |
|
|
|
|
|
|
#5 |
|
Recien llegado
![]() Fecha de Ingreso: junio-2012
Amigos 0
Mensajes: 7
Gracias: 1
Agradecido 0 veces en 0 mensajes.
|
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 |
|
|
|
|
|
#6 | |
|
Moderador
![]() Fecha de Ingreso: noviembre-2006
Amigos 4
Mensajes: 2.635
Gracias: 3
Agradecido 294 veces en 210 mensajes.
|
tienes enabledelayedexpansion?
kj
__________________
|
|
|
|
|
|
|
#7 |
|
Recien llegado
![]() Fecha de Ingreso: junio-2012
Amigos 0
Mensajes: 7
Gracias: 1
Agradecido 0 veces en 0 mensajes.
|
Si, tengo enabledelayedexpansion
|
|
|
|
|
|
#8 | |
|
Habitual
![]() Fecha de Ingreso: marzo-2011
Ubicación: encarnacion, paraguay
Amigos 11
Mensajes: 197
Gracias: 31
Agradecido 38 veces en 35 mensajes.
|
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??:
|
|
|
|
|
|
|
#9 | ||
|
Moderador y merodeador :=
![]() Fecha de Ingreso: marzo-2011
Ubicación: Valencia city, Spain
Amigos 17
Mensajes: 986
Gracias: 1.959
Agradecido 340 veces en 245 mensajes.
|
Cita:
Cita:
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. |
||
|
|
|
| El Siguiente Usuario Agradeció a EleKtro H@cker Por Este Mensaje: | Reister (10-jul-2012) |
|
|
#10 |
|
Recien llegado
![]() Fecha de Ingreso: junio-2012
Amigos 0
Mensajes: 7
Gracias: 1
Agradecido 0 veces en 0 mensajes.
|
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 |
|
|
|
![]() |
| Herramientas | |
| Desplegado | |
|
|

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 |