FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Ejecutar comando de powershel o DOS
Posts: 162
Joined: Tue Feb 03, 2009 10:08 PM
Ejecutar comando de powershel o DOS
Posted: Wed Apr 09, 2014 04:42 PM

Hola amigos del foro: Estoy tratando de ejecutar comandos de DOS o del powershell desde un programa de fivewin de 32 bits con las funciones WAITRUN y SHELLEXECUTE,
el comando es el siguiente: "net.exe view > equipos.txt"; pero el comando no se ejecuta. Que estoy haciendo mal????.

Si lo hago a través de crear un archivo.bat si funciona, pero la idea e usar alguna de estas dos funciones. Esto lo estoy haciendo en un equipo con Windows 8.1 de 64 bits.

WAITRUN ( "command.com /C net view > " + cFile, 1 )
SHELLEXECUTE ( 0, "open", "net.exe view > equipos.txt", , 0, 1 )

Gracias

J. Ernesto Pinto Q.
Fwh_x64 2501, BCC++_x64 7_70 , Harbour 3.20, LopeEdit 5.8
jepsys@hotmail.com, jepsys@gmail.com

Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Ejecutar comando de powershel o DOS
Posted: Wed Apr 09, 2014 05:34 PM
Code (fw): Select all Collapse
   cFile := cFilePath( GetModuleFileName( GetInstance() ) ) + "ARCHIVO.TXT"

   WinExec( "Notepad.exe " + cFile )
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 145
Joined: Wed Nov 03, 2010 09:16 AM
Re: Ejecutar comando de powershel o DOS
Posted: Fri Apr 11, 2014 11:52 AM
Este sistema funciona sin problemas.

Code (fw): Select all Collapse
*********************************
  function CreaDir( cDir )
*********************************
local h
local cComando := "mkdir " + '"'+cDir+'"'
h := fcreate( "_1.bat" ) ; fwrite( h,  cComando ); fclose( h )
WAITRUN( "_1.bat ", 0 )
FErase( "_1.bat" )


return 0
Paco García
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: Ejecutar comando de powershel o DOS
Posted: Fri Apr 11, 2014 05:51 PM
Paco, claro que no es el caso pero existen las funciones: lmkdir, lrmdir, lcddir.

J. Ernesto su tu idea es obtener los nombres de los equipos en la RED podes usar ésta función.
Code (fw): Select all Collapse
FUNCTION ListPC(Dominio)
   Local aPcs:={}
   LOCAL oAdoCommand,oAdoConnection,oRs
   oAdoCommand:=CreateObject("ADODB.Command")
   oAdoConnection:=CreateObject("ADODB.Connection")
   oAdoConnection:Provider:="ADsDSOObject"
   oAdoConnection:Open("Active Directory Provider")
   oAdoCommand:ActiveConnection:=oAdoConnection
   oAdoCommand:CommandText:="Select name from 'LDAP://'+Dominio+' Where objectCategory='computer'"
   oRs:=oAdoCommand:Execute()
   oRs:MoveFirst()
   DO WHILE !oRs:Eof()
       xPC:=Alltrim(oRs:Fields("Name"):Value)
        aAdd(aPcs,xPC)
         oRs:MoveNext()
   ENDDO
 
RETURN NIL


Las guarda en una Tabla (Array) pero también podes guardar en un archivo

Saludos,

Adhemar
Saludos,



Adhemar C.

Continue the discussion