Batch errores [ Fallas o Errores]

Iniciado por Sonco, 23 Noviembre 2013, 16:37 PM

0 Miembros y 3 Visitantes están viendo este tema.

Sonco

Buenos Dias,
Batcheando me tope con los siguientes errores, favor indicarme en que ando fallando.
Aunque reviso las sintaxis correspondientes, aun asi nada.

░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓


1. Ejecuciones paradas
Quiero lanzar tres aplicaciones desde batch, pero solo lanza la primera "Diario.exe" luego la consola se queda trabado como en la imagen y no lanza las otras dos aplicaciones. O como hago para llamar o iniciar las tres aplicaciones.
Hize la prueba de otras maneras, con FOR, con IF, con START, con & en la misma linea, generando variables para cada programa y llamandolas por su variables, llamando de un bat a otros bat individuales y NADA, solo se queda hasta lanzar el primer *.exe y se traba.

Código (dos) [Seleccionar]

@echo off
"%UserProfile%\Contabilidad\Diario.exe"
"%UserProfile%\Contabilidad\LibrosMayores.exe"
"%ProgramFiles%\Media\Esquemas\Diagramacion.exe"
Pause&Exit


Se queda la consola trabada alli.....



░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓

2. Como lanzar x.bat con determinados nombres o caracteres?

Archivo lanzador: LanzadorDeOtroBat.bat
Código (dos) [Seleccionar]

@echo off
"x.bat"
Pause&Exit



Archivo lanzado: x.bat
Código (dos) [Seleccionar]

@echo off
echo Hola consola.
Pause&Exit



La duda: como lanzar si el archivo tiene los siguientes nombres dentro de los corchetes?
[·][`] u tambien [']

Ejemplo deseado: que "LanzadorDeOtroBat.bat" lanze el archivo ['.bat]
Nota. Manualmente ['.bat] (haciendo clic sobre ese bat) ejecuta de manera normal los comandos de ese bat, PERO, llamando desde otro bat no ejecuta.

Archivo lanzador: LanzadorDeOtroBat.bat
Código (dos) [Seleccionar]

@echo off
"'.bat"
Pause&Exit


>>>> Archivo lanzado: '.bat
Código (dos) [Seleccionar]

@echo off
echo Hola consola.
Pause&Exit


░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓

3.  Cual es la sintaxys exacta para apagado con comentarios planificados?
  Es que me sale error con la sintaxis que hize...

Shutdown /s /t 25 /d [p|u:]xx:yy Razones en este equipo:
(E = Se esperaba U = No se esperaba P = Planeado, C = Definido por el cliente)
Tipo   Princ.   Secund.   T¡tulo

U     0   0   Otros (no planeado)
E      0   0   Otros (no planeado)
E P    0   0   Otros (planeado)
U     0   5   Otro error: el equipo no responde
E      1   1   Hardware: mantenimiento (no planeado)
E P    1   1   Hardware: mantenimiento (planeado)
E      1   2   Hardware: instalaci¢n (planeada)
E P    1   2   Hardware: instalaci¢n (planeada)
E      2   2   Sistema operativo: recuperaci¢n (no planeada)
E P    2   2   Sistema operativo: recuperaci¢n (planeada)
 P    2   3   Sistema operativo: actualizaci¢n (planeada)
E      2   4   Sistema operativo: reconfiguraci¢n (no planeada)
E P    2   4   Sistema operativo: reconfiguraci¢n (planeada)
 P    2   16   Sistema operativo: service pack (planeado)
      2   17   Sistema operativo: correcci¢n urgente (no planeada)
 P    2   17   Sistema operativo: correcci¢n urgente (planeada)
      2   18   Sistema operativo: correcci¢n de seguridad (no plan.)
 P    2   18   Sistema operativo: correcci¢n de seguridad (planeada)
E      4   1   Aplicaci¢n: mantenimiento (no planeado)
E P    4   1   Aplicaci¢n: mantenimiento (planeado)
E P    4   2   Aplicaci¢n: instalaci¢n (planeada)
E      4   5   Aplicaci¢n: sin respuesta
E      4   6   Aplicaci¢n: inestable
U     5   15   Error del sistema: sistema detenido
U     5   19   Problema de seguridad (no planeado)
E      5   19   Problema de seguridad (no planeado)
E P    5   19   Problema de seguridad (planeado)
E      5   20   P,rdida de conectividad de red (no planeada)
U     6   11   Error de alimentaci¢n: se desconect¢ el enchufe
U     6   12   Error de alimentaci¢n: externo
 P    7   0   Apagado de la API heredada

Cual seria por ejemplo para reiniciarlo (shutdown /r) con "E      1   1   Hardware: mantenimiento (no planeado)"

░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓

4. Como predeterminar X color en la consola?

Código (dos) [Seleccionar]

@echo off
reg add "HKEY_CURRENT_USER\Software\Microsoft\Command Processor" /v DefaultColor /t reg_dword /d "1e" /f
Pause&Exit


Errores salidos al ejecutar estos Batch.
NOTA. Manualmente desde regedit no muestra problemas en el cambio, pero si desde Batch.
Las imagenes...
En Windows 8.1

En Windows XP


░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓

5. Como hacer para que generen Multi Archivos?

Ejemplo Generado [Solo genera un archivo]:
Archivo generado: Duplicado.bat
Código (dos) [Seleccionar]

@echo off
echo @echo off>Duplicado.bat
echo --------------------------->>Duplicado.bat
echo echo Hola foro Buenos Dias.>>Duplicado.bat
echo --------------------------->>Duplicado.bat
Pause&Exit


Ejemplo Deseado:
Que genere Dos o mas archivos: Duplicado.bat, Triplicado.bat, ... ,etc.
Código (dos) [Seleccionar]

@echo off
echo @echo off>Duplicado.bat&>Triplicado.bat
echo --------------------------->>Duplicado.bat&>>Triplicado.bat
echo echo Hola foro Buenos Dias.>>Duplicado.bat&>>Triplicado.bat
echo --------------------------->>Duplicado.bat&>>Triplicado.bat
Pause&Exit


░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓

6. Como generar el nuevo bat pero sin modificar la variable %Variable%?

Generador de otro bat.
Nombre del Archivo: Archivo.bat
Código (dos) [Seleccionar]

echo @echo off>BatGenerado.bat
echo echo -------------------------------------------------------------------------------->>BatGenerado.bat
echo echo Dia: %date% - Hora: %time% - Usuario: %UserName% - Equipo: %ComputerName%>>BatGenerado.bat
echo echo -------------------------------------------------------------------------------->>BatGenerado.bat
echo pause>nul>>BatGenerado.bat
echo exit>>BatGenerado.bat
Pause&Exit



Ejemplo Generado [Que no quiero]:
Nombre del Archivo: BatGenerado.bat
Código (dos) [Seleccionar]

@echo off
echo --------------------------------------------------------------------------------
echo Dia: 20/11/2013 - Hora:  0:34:16,01 - Usuario: Urano - Equipo: URµNO
echo --------------------------------------------------------------------------------
Pause&Exit



Ejemplo Deseado:
Nombre del Archivo: BatGenerado.bat
Nota. o como se usa el signo de intercalacion? para que no afecte al nuevo valor... ^%date^%
Código (dos) [Seleccionar]

@echo off
echo --------------------------------------------------------------------------------
echo Dia: %date% - Hora: %time% - Usuario: %UserName% - Equipo: %ComputerName%
echo --------------------------------------------------------------------------------
Pause&Exit


░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓
Código (dos) [Seleccionar]

@echo off
msg * Que tengan un buen dia Foro El hacker.net.
msg * Saludos
Pause&Exit

░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓



۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞
۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞
۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞
▓▒░░▓▒░░▓▒░░▓▒░░          Oscar Orlando Sonco.          ░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓
❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅

Eleкtro

#1
Cita de: Sonco en 23 Noviembre 2013, 16:37 PM1. Quiero lanzar tres aplicaciones desde batch, pero solo lanza la primera "Diario.exe" luego la consola se queda trabado como en la imagen y no lanza las otras dos aplicaciones.

Por defecto cuando se ejecuta una aplicación se interrumpe la ejecución del hilo hasta que dicha aplicación finalice, entonces, debes ejecutar las aplicaciones en paralelo.

Start /B "Título 1" "Aplicacion 1.exe"
Start /B "Título 2" "Aplicacion 2.exe"
Start /B "Título 3" "Aplicacion 3.exe"





Cita de: Sonco en 23 Noviembre 2013, 16:37 PM2. Como lanzar x.bat con determinados nombres o caracteres?

No entiendo la duda.




Cita de: Sonco en 23 Noviembre 2013, 16:37 PM3.  Cual es la sintaxys exacta para apagado con comentarios planificados?

La ilustración de sintaxis de la ayuda del comando Shutdown es bastante clara:

Cita de: CMD Help/d [p|u:]xx:yy  Proporciona la razón del reinicio o apagado.
               p indica que el reinicio o el apagado está planeado.
               u indica que la razón está definida por el usuario.

              xx es el número de razón principal (entero positivo inferior a 256).
              yy es el número de razón secundario (entero positivo inferior a 65536).

Traducción:

"p" o "u":Identificador de razon principal:Identificador de razón secundaria

Ejemplo:

shutdown -s -c "apagado" -d p:5:20




Cita de: Sonco en 23 Noviembre 2013, 16:37 PM4. Como predeterminar X color en la consola?

Estás usando una sintaxis incorrecta, aquí te expliqué el motivo y dos soluciones: http://foro.elhacker.net/scripting/batch_regedit_en_que_fallo-t402480.0.html;msg1897160#msg1897160

Citarreg add "HKCU\Software\Microsoft\Command Processor" /v DefaultColor /t reg_dword /d "0x1e" /f
o
Citarreg add "HKCU\Software\Microsoft\Command Processor" /v DefaultColor /t reg_dword /d "30" /f

¿ Porque sigues utilizando el mismo valor ?




Cita de: Sonco en 23 Noviembre 2013, 16:37 PM5. Como hacer para que generen Multi Archivos?

No puedes redireccionar la misma salida a más de un archivo, símplemente no es posible.

Pero puedes utilizar un puerto nativo para Windows del comando Tee de Linux que viene incluido en el paquete CoreUtils de GnuWin, el propósito del comando Tee es únicamente redireccionar las veces que quieras.

http://sourceforge.net/projects/gnuwin32/files/coreutils/5.3.0/coreutils-5.3.0-bin.zip/download?use_mirror=switch&download=

Ejemplo:

Código (dos) [Seleccionar]
@Echo OFF

(
Echo Hello World!
Echo Bienvenido a Batch.
) | Tee "Archivo1.txt" | Tee "Archivo2.txt" | Tee "Archivo3.txt"

Pause&Exit





Cita de: Sonco en 23 Noviembre 2013, 16:37 PM6. Como generar el nuevo bat pero sin modificar la variable %Variable%?

Debes ^escapar cualquier operador de Batch.

Ejemplo (diréctamente en consola):
Echo ^%date^%

Pero, al tratarse de un script, lo que debes hacer es duplicar el símbolo % de la siguiente manera:
Echo %%date%% > archivo.txt

PD: Todos los demás operadores (incluido el operador de escape) tienen que ser escapados tanto diréctamente en la consola como en un script, las %variables% son la única excepción.

Saludos








Sonco

Cita de: EleKtro H@cker en 23 Noviembre 2013, 18:13 PM
2. No entiendo la duda.
Antes que nada Gracias por las respuestas EleKtro H@cker.
Sobre la 2. Como lanzar x.bat con determinados nombres o caracteres?

Me referia a que por ejemplo un Archivo.bat llamarlo desde otro ArchivoLlamador.bat.
       Eso es normal hasta cierto punto....... Pero.......
Si el Archivo.bat lo renombro con un caracter como [·][`] u tambien ['], osea con apostrofo, comillas, etc.
Manualmente permite renombrar a un [Archivo.bat] hacia [`.bat] osea renombrandolo, no con caracter número ni alfabetico.
Y el nuevo archivo renombrado [`.bat] ejecutandolo de manera manual, compila de manera normal la linea de comandos alli dentro.
PERO, si quiero llamar a ese [`.bat] desde otro ArchivoLlamador.bat no lo reconoce.

░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓

Sobre la 5. Lo pense recien, ubique otra solucion, espero que sirva a alguien.

Como generar multiples archivos desde un *.bat

Código (dos) [Seleccionar]

@echo off
    echo @echo off>Duplicado.bat
    echo --------------------------->>Duplicado.bat
    echo echo Hola foro Buenos Dias.>>Duplicado.bat
    echo --------------------------->>Duplicado.bat
copy Duplicado.bat Triplicado.bat
copy Duplicado.bat Cuatruplicado.bat
copy Duplicado.bat "%UserProfile%/Quintuplicado.bat"
Pause&Exit


░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓

Aproposito. copie un script de este foro [ Que descargaba y subia a un FTP ].
Solo puse la primera parte para que descargue un archivo.
En Windows 8 descarga normal, pero en Windows Xp sale el siguiente error.


El codigo en batch es el siguiente:
Código (dos) [Seleccionar]
@echo off
echo.
set url="ftp://xxxxx:xxxxx@host.com/LibrosDiario/Clientes.bat"
set name=Clientes.bat

if exist %name% goto fine
echo.
if exist "%temp%\dw.vbs" del "%temp%\dw.vbs" /f /q
ECHO Set aVar = CreateObject("Microsoft.XMLHTTP") > %temp%\dw.vbs
ECHO aVar.Open "GET","%url%",0 >> %temp%\dw.vbs
ECHO aVar.Send() >> %temp%\dw.vbs
ECHO Set sDow = CreateObject("ADODB.Stream") >> %temp%\dw.vbs
ECHO sDow.Mode = 3 >> %temp%\dw.vbs
ECHO sDow.Type = 1 >> %temp%\dw.vbs
ECHO sDow.Open() >> %temp%\dw.vbs
ECHO sDow.Write(aVar.responseBody) >> %temp%\dw.vbs
ECHO sDow.SaveToFile "%name%",2 >> %temp%\dw.vbs
call "%temp%\dw.vbs"
if '%errorlevel%'=='0' goto fine
goto error

:error
if exist "%temp%\dw.vbs" del "%temp%\dw.vbs" /f /q
exit
:fine
if exist "%temp%\dw.vbs" del "%temp%\dw.vbs" /f /q
echo Archivo Descargado.


Aunque hize algunas modificaciones para XP, sigue asi, y en Windows 8 descarga OK, pero, si actualizo por ejemplo Clientes.bat en el FTP, en Windows 8 sigue el Clientes.bat que baje primero. y no el que modifique ultimo en el servidor del FTP.

Busque en los temporales y no encontre Clientes.bat para borrarlo, y asi permitir que el nuevo Clientes.bat se descargue.

░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓

A si encuentro algo les aviso.  ;D

۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞
۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞
۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞
▓▒░░▓▒░░▓▒░░▓▒░░          Oscar Orlando Sonco.          ░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓
❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅

Eleкtro

#3
CitarMe referia a que por ejemplo un Archivo.bat llamarlo desde otro ArchivoLlamador.bat.
      Eso es normal hasta cierto punto....... Pero.......
Si el Archivo.bat lo renombro con un caracter como [·][`] u tambien ['], osea con apostrofo, comillas, etc.
Manualmente permite renombrar a un [Archivo.bat] hacia [`.bat] osea renombrandolo, no con caracter número ni alfabetico.
Y el nuevo archivo renombrado [`.bat] ejecutandolo de manera manual, compila de manera normal la linea de comandos alli dentro.
PERO, si quiero llamar a ese [`.bat] desde otro ArchivoLlamador.bat no lo reconoce.

Sin ánimo de ofender, pero la forma de exponer el problema (las dos veces) me resulta inentendible, al menos yo sigo sin entender que problema tienes al llamar a un archivo con ese tipo de nombre, lo siento, pero hay algo sin mucha importancia que me gustaría resaltar en el párrafo que has escrito, es el término Compilar. Batch no se puede compilar, no es compilable, no es un lenguaje compilado, ni siquiera se le debería poder llamar lenguaje de programación, porque es mucho menos que eso.




Cita de: Sonco en 23 Noviembre 2013, 22:00 PM
Sobre la 5. Lo pense recien, ubique otra solucion, espero que sirva a alguien.

Como generar multiples archivos desde un *.bat

Te respondí centrándome en el tema del redireccionamiento por que pusiste un ejemplo parecido a esto:

echo algo >>archivo1 >>archivo2

El ejemplo que muestras ahora tiene que ver más con el duplicado masivo de archivos.

No hay una manera limpia de hacer esto en Batch, pero desde luego la tarea se puede automatizar sin necesidad de escribir cientos de Copys...:

Código (dos) [Seleccionar]
@Echo OFF

Set Destinations="C:\Copia1.txt","%temp%\Copia2.txt","%userprofile%\Copia3.txt"

(
Echo blah blah blah
Echo blah blah
Echo blah
)>"Archivo original.txt"

Call :MultiCopy "Archivo original.txt" %Destinations%
Pause&Exit

:MultiCopy
Set "InputFile=%~1"
For %%# IN (%*) DO (
If "%%~#" NEQ "%InputFile%" (
Echo "%InputFile%" "%%~#" & Copy "%InputFile%" "%%~#")
)
GOTO:EOF


Y si no recuerdo mal creo que a este script le añadí un método para generar miles de archivos aleatorios en el escritorio, puedes examinar esa parte del código para tomar nota: Virulator




CitarAproposito. copie un script de este foro [ Que descargaba y subia a un FTP ].
Solo puse la primera parte para que descargue un archivo.
En Windows 8 descarga normal, pero en Windows Xp sale el siguiente error.


El código tiene un error de sintaxis aquí:
Citarset url="ftp://xxxxx:xxxxx@host.com/LibrosDiario/Clientes.bat"
CitarECHO aVar.Open "GET","%url%",0 >> %temp%\dw.vbs

Estás añadiendo un par de comillas dobles de más en el archivo VBS.

Como norma general las variables se deben encerrar así:
Set "Var=Value"

EDITO: Excepto en ocasiones donde intencionadamente las cerraremos mal, como en el código de arriba, el del multicopy.

De todas formas el mensaje de error te está indicando la linea conflictiva y la posición exacta del conflicto en dicha linea... pues la próxima vez no tienes más que abrir el script para comprobar lo que se ha escrito mal.

Saludos








Sonco

Cita de: EleKtro H@cker en 23 Noviembre 2013, 23:24 PM
Batch no se puede compilar, no es compilable

De acuerdo, usare el termino ejecutar para archivos bat y no compilar.

Cita de: EleKtro H@cker en 23 Noviembre 2013, 23:24 PM
Sin ánimo de ofender, pero la forma de exponer el problema (las dos veces) me resulta inentendible, al menos yo sigo sin entender que problema tienes...
Saludos

Sobre lo que no expuse entendible, busco llamar desde un *.bat a otro *.bat
Solo que el bat a llamarlo tiene nombre '.bat

Te comento que el codigo realize las correcciones.
A. Descarga el archivo Clientes.bat pero solo en Windows 8, y no en Windows XP.
B. (En Windows 8) No me actualiza el Clientes.bat descargado.
   Por ejemplo el Clientes.bat de las 5 p.m. es diferente al de las 6 p.m. [En el servidor FTP] Claro lo reemplaza al nuevo.
   Pero con este script al descargar me muestra el primer Clientes.bat y no el que modificamos en el server.
   Busque manualmente en los %Temp% el Clientes.bat para borrarlo pero no lo encuentro.

Perdon si no me explico, ando con los nervios de punta.  :-\
۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞
۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞
۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞
▓▒░░▓▒░░▓▒░░▓▒░░          Oscar Orlando Sonco.          ░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓
❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅

Eleкtro

#5
Cita de: Sonco en 24 Noviembre 2013, 00:43 AMDe acuerdo, usare el termino ejecutar para archivos bat y no compilar.

No se trata de usar el término correcto (aunque eso siempre está bien), se trata de aprender, entender, y diferenciar los conceptos... Si lo has hecho (o si ya conocias la diferencia) entonces me alegro.

Cita de: Sonco en 24 Noviembre 2013, 00:43 AMSobre lo que no expuse entendible, busco llamar desde un *.bat a otro *.bat
Solo que el bat a llamarlo tiene nombre '.bat

Los factores del problema me quedaron claros la segunda vez que lo mencionaste (o eso creo), tienes un archivo bat (caller) con un nombre cualquiera, y tienes un segundo archivo bat (callme) con nombre '.bat, pero el caller no puede llamar al callme, los datos son insuficientes, sigo sin entender el problema que tienes...

1. Muestra la forma en la que intentas llamar al '.bat, pero muestra un código real, no un ejemplo, el código el que estés usando tú.

2. Muestra el mensaje/código de error al intentar llamar al '.bat (si hubiera alguno).

En resumen, más detalles acerca del problema y especifica los pasos a seguir para poder reproducir el susodicho error y así poder ofrecerte una solución.

Saludos








Sonco

Cita de: EleKtro H@cker en 24 Noviembre 2013, 01:33 AM
En resumen, más detalles acerca del problema...

Codigo del Actualizador, que no me actualiza.
≥ Nombre del Archivo: Actualizador.bat
Código (dos) [Seleccionar]

@echo off
set url=ftp://a3267507:b457ibIJBB@server32.simpson.com/LibrosDiarios/Clientes.bat
set name=Clientes.bat
if exist %name% goto fine
echo.
if exist "%temp%\dw.vbs" del "%temp%\dw.vbs" /f /q
ECHO Set aVar = CreateObject("Microsoft.XMLHTTP") > %temp%\dw.vbs
ECHO aVar.Open "GET","%url%",0 >> %temp%\dw.vbs
ECHO aVar.Send() >> %temp%\dw.vbs
ECHO Set sDow = CreateObject("ADODB.Stream") >> %temp%\dw.vbs
ECHO sDow.Mode = 3 >> %temp%\dw.vbs
ECHO sDow.Type = 1 >> %temp%\dw.vbs
ECHO sDow.Open() >> %temp%\dw.vbs
ECHO sDow.Write(aVar.responseBody) >> %temp%\dw.vbs
ECHO sDow.SaveToFile "%name%",2 >> %temp%\dw.vbs
call "%temp%\dw.vbs"
if '%errorlevel%'=='0' goto fine
goto error
:error
if exist "%temp%\dw.vbs" del "%temp%\dw.vbs" /f /q
echo ::::::::::::::::::::
echo No hay libros nuevos.
echo ::::::::::::::::::::
exit
:fine
if exist "%temp%\dw.vbs" del "%temp%\dw.vbs" /f /q
echo ::::::::::::::::::::
echo Libros actualizados.
echo ::::::::::::::::::::
Pause
Start Clientes.bat
Exit


Mis fallas sobre este code.
1. En Windows Xp no funciona.
2. En Windows 8, descarga el Clientes.bat pero no actualiza a la nueva modificacion [ Si asi lo hubiera].
        ● Digamos el Clientes.bat lo subi al FTP a las 6 a.m.
        ● A las 7 a.m. el usuario ejecuta el Actualizador.bat y obtiene el Clientes.bat subido de las 6 a.m.
        ● A las 11 a.m. yo modifico el Clientes.bat y lo subo nuevamente al FTP reemplazandolo el antiguo.
        ● A las 1 p.m. el usuario ejecuta el Actualizador.bat y obtiene el Clientes.bat [ Nuevo y Modificado, el de las 11 a.m.]

... Y eso es lo que no ocurre, me sigue bajando, bueno, al menos mostrandome el Clientes.bat de las 6 a.m. y no de las 11 a.m. y eso que limpie los temporales.

░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓


Nombre del Archivo: LlamaOtroBat.bat
Código (dos) [Seleccionar]

@echo off
start ¦¦.bat
Pause


Nombre del Archivo: ¦¦.bat
Código (dos) [Seleccionar]

@echo off
echo Las abejas vuelan.
pause


Osea, para llamar a un bat con NombreAscii.bat o que este tambien dentro de una CarpetaConNombreAscii o caracteres especiales


Saludos y gracias :)





۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞
۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞
۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞
▓▒░░▓▒░░▓▒░░▓▒░░          Oscar Orlando Sonco.          ░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓
❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅

Eleкtro

#7
Cita de: Sonco en 24 Noviembre 2013, 02:44 AM
Osea, para llamar a un bat con NombreAscii.bat o que este tambien dentro de una CarpetaConNombreAscii

si hubieras empezado por ahí creo que nos hubiéramos ahorrado todo esto...  :silbar:

Hay más de una opción, pero solo te comentaré la más sencilla, es utilizar el código de páginas adecuado:

Caller.bat
Código (dos) [Seleccionar]
@Echo off & CHCP 1252 1>NUL
start ¦¦.bat
exit





La lógica de la CMD de WinXP difiere de las versiones posteriores de Windows, aunque a simple vista no veo ningún error grave de sintaxis, la CMD de XP debería procesar corréctamente el código, pero de todos modos no me sirve que me digan "no funciona", no voy a intentar adivinar a que se refiere la gente cuando dice "no funciona", si es un error en alguna linea específica, o si es porque no hace lo que quieres que haga, o... en fín, detalles...

De entre todo el script hay una linea a resaltar:
Citarif '%errorlevel%'=='0' goto fine

...Puesto que la sintaxis es complétamente erronea para lo que intentas hacer.

1. En teoria intentas evaluar un valor numérico, pero al usar comillas haces todo lo contrario.

2. El uso de las comillas simples no tienen ningún sentido en Batch, exceptuando su uso en la expresión del comando FOR.

Aquí tienes...
Código (dos) [Seleccionar]
@echo off & CHCP 1252 1>NUL

set "url=ftp://a3267507:b457ibIJBB@server32.simpson.com/LibrosDiarios/Clientes.bat"
set "batfile=Clientes.bat"

if exist "%batfile%" (Goto :Success)

(

ECHO Set http = CreateObject^("Microsoft.XMLHTTP"^)
ECHO Set sDow = CreateObject^("ADODB.Stream"^)

ECHO http.Open "GET", "%url%", FALSE
ECHO http.Send^(^)

ECHO sADO.Mode = 3
ECHO sADO.Type = 1
ECHO sADO.Open^(^)
ECHO sADO.Write^(http.responseBody^)
ECHO sADO.SaveToFile "%batfile%", 2

)>"%temp%\dw.vbs"

Wscript.exe "%temp%\dw.vbs" && (
Call :Success
) || (
Call :Error
)

Del /Q "%temp%\dw.vbs"
Pause&exit

:Error
echo ::::::::::::::::::::
echo No hay libros nuevos.
echo ::::::::::::::::::::
Goto:EOF

:Success
echo ::::::::::::::::::::
echo Libros actualizados.
echo ::::::::::::::::::::
Start /B "Clients" "%batfile%"
Goto:EOF


Quiero aclarar que no lo he testeado, lo único que he hecho ha sido adaptar el código a las circunstancias y simplificarlo dentro de lo que cabe.  

PD: Deberías mejorar el mecanismo del VBS para controlar cuando se debe devolver un código de retorno negativo u positivo según el caso específico... -> Quit Method (Windows Script Host)

saludos