Creando un bat

Iniciado por Ambolia, 27 Agosto 2013, 20:09 PM

0 Miembros y 1 Visitante están viendo este tema.

Ambolia

Hola,tengo 13 años y e creado un bot para un juego llamado runes of magic.

-mi problema es...

-necesito que el bat auto detecte si windows es 32 bits o 64 bits.
-Que desistale un programa si esta instalado Gameforge live.
-Instale un programa "Tortoise SVN" que esta en la misma carpeta que el bat.(en modo silencioso)
-Que copie la carpeta Micromacro al escritorio.
-Y que copie la carpeta rom a Micromacro/Scripts/
-Despues que copia la carpeta ingamefuncions que esta en Micromacro/Scripts/devtools/ingamefuncions y que la copie a archivos de programa/Runes of Magic/Interface/Addons/
- Y del Resto me encargo yo que es renombrar 4 archivos

Gracias de antemano

espero que alguien sea generoso.



EI: juntando mensajes.



una cosa mi foro es http://www.elrincondelbot.p.ht/ y esta en construccion y no tumbarlo por favor.

Alien-Z

#1
Suponemos como premisa que no quieres comandos shell porque has puesto el tema en un subforo de C/C++.

-necesito que el bat auto detecte si windows es 32 bits o 64 bits.

Consulta alguno de los archivos de información del sistema operativo, aqui tienes un ejemplo: http://support.microsoft.com/kb/556009

-Que desistale un programa si esta instalado Gameforge live.

Desinstalar un programa no es más que eliminar la carpeta de dicha aplicación y modificar los archivos de configuración correspondientes.

-Instale un programa "Tortoise SVN" que esta en la misma carpeta que el bat.(en modo silencioso)

Instalar un programa es lo mismo que copiar la carpeta al PC. Si dices que ya se encuentra en la carpeta del bat (y ésta en el disco duro), colócala en alguna ruta más clara. Ej: C:\Archivos del programa\carpeta de tu aplicación\ficheros que componen tu aplicación

-Que copie la carpeta Micromacro al escritorio.
-Y que copie la carpeta rom a Micromacro/Scripts/
-Despues que copia la carpeta ingamefuncions que esta en Micromacro/Scripts/devtools/ingamefuncions
y que la copie a archivos de programa/Runes of Magic/Interface/Addons/


¿Pero exactamente qué API o librería estás utilizando?. Tienes desde:

Código (cpp) [Seleccionar]
system("copy C:\\origen\\archivo1.txt C:\\destino");

O usando la API de Windows: http://www.delphiaccess.com/forum/trucos-y-consejos-16/%28multilenguaje%29-copiar-multiples-archivos-y-carpetas/

Con lo cual la harías dependiente de este SO (Win API = cosa mala).

Lo que yo te recomiendo es alguna librería con una implementación medianamente decente y que mantenga el carácter multiplataforma de C/C++ como QT: http://www.zonaqt.com/foro/copiar-y-eliminar-directorios#comment-2213

Cita de: Ambolia en 27 Agosto 2013, 20:12 PM
una cosa mi foro es http://www.elrincondelbot.p.ht/ y esta en construccion y no tumbarlo por favor.

Demasiado tarde Muahahahaha

Ambolia

#2
muchas gracias

si tengo un problema lo dire

otra cosa al copiar al escritorio tiene un nombre de usuario por lo que no la se para los demas usuarios.

vangodp


Ambolia

#4

Código (cpp) [Seleccionar]


@echo off
:menu
cls
echo                ----------------------------------------
echo                         - Sistema operativo -
echo                ----------------------------------------
echo.&echo.
echo 1- Xp o Vista
echo.
echo 2- 7 o 8
echo.&echo.
set "option="
set /p "option= Elige sistema operativo: "
if not defined option (goto :menu)

if %option%==1 (goto :xp)
if %option%==2 (goto :7)

:xp
:menu
echo                ----------------------------------------
echo                       - Instalacion de Rombot -
echo                ----------------------------------------
echo.&echo.
echo 1- 32 bits
echo.
echo 2- 64 bits
echo.&echo.
set "option="
set /p "option= Elige la opcion: "
if not defined option (goto :menu)

if %option%==1 (goto :32)
if %option%==2 (goto :64)

:32
echo.
echo                ------------------------------------------
echo                      -instalacion de Tortoise SVN-
echo                ------------------------------------------
echo.
echo instalando Tortoise svn 32 bits
install_TortoiseSVN32.msi[color=red]aqui no instala[/color]
echo.
pause
echo.
echo Copiando Carpeta micromacro al escritorio...
echo.
COPY "C:\Documents and Settings\%username%\Desktop\Instalar bot\" "C:\Documents and Settings\%username%\Desktop\" [color=red]como voi a saber cual es el nombre de la carpeta "Documents and Settring y Desktop"?[/color]
pause

Gracias por toda la ayuda


vangodp

#5
%HOMEPATH%    Devuelve la ruta completa a dicho directorio.

http://www.slideshare.net/EvandroPeres1/savedfiles?s_title=variables-de-entorno-en-windows-7&user_login=dante1665


Es para windows 7 es eso lo que buscas?


ademas lo de la instalacion creo que tienes que poner la ruta completa para que se instale.

c:\...... no soy muy bueno con los bats XD

ni con otro idioma vamos jaja


EI: juntando mensajes.


%ALLUSERSPROFILE%   Esta variable devuelve la localización del perfil de todos los usuarios, por lo general es C:\Program\Data, carpeta oculta en la unidad C.
%APPDATA%   Una de las variables más utilizadas, carpeta oculta donde guardan sus datos las aplicaciones, se encuentra dentro de la carpeta de usuario.
En Windows 7 y Vista la ruta es la siguiente:
C:\Users\NombreDeUsuario\AppData\Roaming.
En Windows XP la ruta es diferente:
C:\Documents and Settings\NombreDeUsuario\Datos de programa
%COMMONPROGRAMFILES%    Carpeta donde los programas almacenan archivos comunes:
C:\Program Files\Common Files.
%CMDCMDLINE%    Muestra el comando exacto empleado para acceder al intérprete de comandos (cmd.exe). Por ejemplo usándolo en la ubicación exacta de la consola muestra: C:\Windows\system32\cmd.exe Abriendo una ventana de cmd en el escritorio mostrará: "cmd.exe" /s /k pushd "C:\Users\NombreDeUsuario\Desktop"
%CMDEXTVERSION%    Devuelve el número de versión de nuestro intérprete de comandos.
%COMPUTERNAME%    Devuelve el nombre del equipo.
%COMSPEC%    Devuelve la ruta de la shell de comandos, normalmente: C:\Windows\System32.
%DATE%    Devuelve la fecha actual.
%ERRORLEVEL%    Devuelve el código de error del último comando ejecutado.
%HOMEDRIVE%    Devuelve la unidad en la que está el directorio en el que estás actualmente.
%HOMEPATH%    Devuelve la ruta completa a dicho directorio.
%LOGONSERVER%    Devuelve el nombre de nuestro servidor (similar a COMPUTERNAME pero antecedido de dos barras inclinadas \\)
%LOCALAPPDATA%    Carpeta donde los programas guardan archivos temporales. Generalmente C:\Users\NombreDeUsuario\AppData\Local.
%NUMBER_OF_PROCESSORS%    Devuelve el número de procesadores instalados en el equipo.
%OS%    Devuelve nuestro sistema operativo, con la excepción de Windows 2000 y XP que lo devuelven como Windows_NT.
%PATH%    Contiene una lista separada por punto y coma de directorios en los cuales se buscarán los archivos ejecutables que no se invocan con una ruta explícita.
Aparecerá lo siguiente más otros directorios agregados por diversas aplicaciones.
C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\
%PATHEXT%    Esta variable contiene una lista separada por punto y comas con las extensiones conocidas de los archivos ejecutables.
Si el nombre de un ejecutable termina con una extensión incluida en esta lista, es posible omitir dicha extensión al invocar el programa.
Por ejemplo: .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
%PROCESSOR_ARCHITECTURE%    Devuelve la arquitectura del procesador.
%PROCESSOR_IDENTIFIER%    Devuelve la descripción del procesador.
%PROCESSOR_LEVEL%    Devuelve el número de modelo de procesador.
%PROCESSOR_REVISION%    Devuelve el número de revisión del procesador.
%PROGRAMDATA%    Carpeta donde los programas almacenan datos, normalmente: C:\ProgramData.
%PROGRAMFILES%    Devuelve la carpeta donde se instalan los programas, normalmente: C:\Archivos de Programa.
%PSModulePath%    Ruta a los modulos de PowerShell, C:\Windows\system32\WindowsPowerShell\v1.0\Modules\
%PUBLIC%    Carpeta donde se guardan datos públicos compartidos de todos los usuarios, generalmente: C:\Users\Public.
%RANDOM%    Devuelve un número al azar entre 0 y 32767.
%SYSTEMDRIVE%    Devuelve la unidad que contiene el directorio raíz del sistema, generalmente: C.
%SYSTEMROOT%    Devuelve la carpeta de administración, que suele ser C:\Windows.
%TEMP% %TMP%    Estas dos variables contienen la ruta a los directorios donde las aplicaciones y programas pueden almacenar sus archivos temporales. En Windows 7 es:
C:\Users\NombreDeUsuario\AppData\Local\Temp
En Windows XP la ubicación es:
C:\Documents and Settings\NombreDeUsuario\Configuración local\Temp
%TIME%    Devuelve la hora actual.
%USERNAME%    Devuelve el nombre del usuario actual.
%USERPROFILE%    Devuelve la ruta del directorio donde están los archivos del usuario actual, normalmente: C:\Users\NombreDeUsuario.
%WINDIR%    Devuelve la ruta de la carpeta del sistema operativo, normalmente: C:\Windows.

flony

 ;-) ;-) ;-)
hace un siglo que no hago bat ...
1º no te enojes pero aca es lenguaje c/c++ en el foro scriptin te pueden ayudar y mucho
2º te voy a tirar un par de ideas que encontré en google
http://superuser.com/questions/142403/batch-file-for-windows7-32-and-64-bits
Set RegQry=HKLM\Hardware\Description\System\CentralProcessor\0
REG.exe Query %RegQry%  | Find /i "x86"
If %ERRORLEVEL% == 0 (
    GOTO X86
) ELSE (
    GOTO X64
)


:X86
:REM taskkill es por si esta funcionando gameforge
TASKKILL /F /IM Gameforge.exe
:rem ejecutamos el desintalador
START (carpeta donde esta ubicado el archivo)\Uninstall.exe
:rem UBICAMOS EL BATCH
DIR %~dp0
:REM no se debe llamar Tortoise SVN, busca bien debe ser algo terminado en exe
START Tortoise SVN
COPY /Y "%~dp0\Micromacro" "%USERPROFILE%\Desktop\"


GOTO END

:X64

aca los comandos que faltan

:End


3º desintalar el programa  Gameforge live...no tengo ganas de instalarlo para desintalarlo, eso lo haras vos, pero cada juego debe tener un desintalador busca en la carpeta donde esta instalado y busca Uninstall.exe o algo asi...lo ejecutas haciendo START
4º bueno como ayuda sirve pero el foro especifico es
http://foro.elhacker.net/scripting-b64.0/
alli hay buena gente y te van a dar una mano terrible...aca pasara al olvido el tema
si un problema no tiene solucion entonces no es un problema...es algo inevitable

vangodp

yes...tnks flony!! No me pongas cosas asi que me vas acabar picando para aprender bat jejeje
Despues de c++ es el que mas me gusta jajaj

Ambolia

una cosa?
antes de crear un bat se poderia ... crear un instalador...? exe?

vangodp

te doy una idea jeje, no se nada de instaladores pero puedes hacer un rar auto extraible .exe copiarlo en el local y ejecutarlo :D

Ademas hay muchos tutoriales en google sam sobre eso.

http://lmgtfy.com/?q=crear+instalador+con+winrar   :silbar: :laugh: