Ver la Versión Completa : Guardar en txt todo el texto del command prompt
locojoan
09-04-2006, 05:41:15
hola. quisiera saber si se puede guardar el texto completo que sale en el command prompt y luego mostrarlo en un memo.
por ejemplo si pongo dir. todos esos datos mostrarlos en un memo.
grasias
Hola,
Echa un vistazo a este Hilo (http://www.clubdelphi.com/foros/showthread.php?t=11744) que he encontrado luego de esta búsqueda (http://www.clubdelphi.com/foros/search.php?searchid=439988) en los Foros.
No sé si será viable, pero un simple:
dir C: > c:\texto.txt
En principio, cualquier orden dada al sistema operativo puede ser redirigida con ">" a un fichero.
Saludos
Hola,
Lepe, puede hacerse lo que dices, aunque, gracias sean dadas a la maravillosa API de Windows (no he sabido utilizar más ironía, espero que se comprenda) es posible también omitir el paso que supone guardar la información en un archivo.
Nota: Aclaro que, aunque no soy el único que piensa que el API de Win32 es una porquería o se acerca a ella, reconozco que no he profundizado nunca lo suficiente en la misma, que muchas faltas que encuentro en el API pueden ser en realidad faltas propias.
seoane
09-04-2006, 20:24:21
Aunque en el hilo que te indico dec hay soluciones muy validas (una de ellas es mia :) ) aqui te dejo otra. Siempre esta bien tener varias formas de afrontar el mismo problema.
function Redirigir(Comando: string; Archivo: string): Boolean;
var
Buffer: array[0..MAX_PATH] of Char;
Info: SHELLEXECUTEINFO;
begin
Result:= FALSE;
Fillchar(Buffer,Sizeof(Buffer),0);
if GetEnvironmentVariable('COMSPEC', @Buffer, SizeOf(Buffer) - 1) > 0 then
begin
Fillchar(Info,Sizeof(Info),0);
Info.cbSize:= SizeOf(Info);
Info.fMask:= SEE_MASK_NOCLOSEPROCESS;
Info.lpFile:= @Buffer;
Info.lpParameters:= PChar('/C '+Comando+' > '+Archivo);
Info.nShow:= SW_HIDE;
if ShellExecuteEx(@Info) then
begin
while WaitForSingleObject(Info.hProcess, 200) = WAIT_TIMEOUT do
Application.ProcessMessages;
Result:= TRUE;
end;
end;
end;
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.