Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: OmarHack en 18 Julio 2014, 16:36 pm



Título: Variables Batch en C++
Publicado por: OmarHack en 18 Julio 2014, 16:36 pm
Necesito pasar unos valores de unas variables en batch a C++, las variables las defino en el propio código de c++ usando system pero al ejecutarse linea por linea en cuanto quiera utilizar las variables ya se han perdido sus valores.

Quiero hacer algo similar a esto:
system ("set segundo=%time:~6,2%");
system ("xcopy c:\\Users\\*.* C:\\Users\\copias\\cs_%segundo%_.txt

No funciona porque se pierde el valor de la variable y no puedo meter set y xcopy en la misma sentencia con system. Si creo un archivo .bat funciona, pero intento no depender mas que del ejecutable asique no me sirve.
Una posible solucion sería conseguir ejecutar las 2 sentencias juntas para que no se "cerrara" el símbolo de sistema y así conservara el valor de la variable segundo pero no se me ocurre como hacerlo.
Podría usar la librería time o alguna similar para obtener los segundos pero tengo que copiar y nombrar el archivo a la fuerza con xcopy y ahí es donde está el problema.


Título: Re: Variables Batch en C++
Publicado por: eferion en 18 Julio 2014, 16:49 pm
tu necesitas:

* putenv (http://man7.org/linux/man-pages/man3/putenv.3.html): en Linux
* _putenv (http://msdn.microsoft.com/es-es/library/83zh4e6k.aspx): en Windows enlace

Al hacer "system" se abre y se cierra una conexión de consola, al cerrarse dicha sesión se pierden los valores temporales, por eso no te funciona.



Título: Re: Variables Batch en C++
Publicado por: ivancea96 en 19 Julio 2014, 01:56 am
Sinó siempre te queda enviar el flujo de salida del comando a un archivo, y leerlo :o