Jump to content
FrancescoDiMuro

Run cmd.exe + another exe

Recommended Posts

FrancescoDiMuro

Good morning AutoIt community! :)
Today, I'm here to ask you if you know how to run an .exe from cmd.exe ( Command Prompt )...
My intention is to read a .ini file where I store an information that has to be included in the shell, and run an .exe with that information...
I'll give you an example :)

Local $aFileCartellaAuditCopy = _FileListToArray($sPercorsoAuditCopy, "*.txt")
If @error Then      
    MsgBox($MB_ICONERROR, "Errore!", "Errore durante la lettura della lista dei file nella directory" & @CRLF & $sPercorsoAuditCopy & @CRLF & "Errore: " & @error)
    Return False
Else
    Local $iPID = Run("cmd.exe" & ' /k "C:\Users\Portatile-60\Desktop\HmiCheckLogIntegrity.exe" "C:\Users\Portatile-60\Desktop\AuditTrailDosaggio0_20170327_151335_DOSAGGIO_PW_01.txt"') ; & " /k " & '"' & $sHmiCheckLogIntegrity & '"' & " " & '"' & $sPercorsoAuditCopy & "\" & $aFileCartellaAuditCopy[1] & '"', "", @SW_SHOW, $STDOUT_CHILD)
    Return True
EndIf

This code is in a function, that returns False if it can retrive at least a file from the path stored in the .ini file...
Else
I would like to run the Command Prompt with the .exe and with a parameter of that .exe, but it seems to not work properly.

Could please anyone tell me why?

Thanks :) 


Click here to see my signature:

Spoiler

I will always thank you for the time you spent for me.
I'm here to ask, and from your response, I'd like to learn.
By my knowledge, I can help someone else, and "that someone" could help in turn another, and so on.

Share this post


Link to post
Share on other sites
Subz

Any reason you don't use either IniRead or IniReadSection?  Does the application require elevation, i.e. #RequireAdmin to run?  Does it need to be run in 32/64?

Share this post


Link to post
Share on other sites
FrancescoDiMuro

Hey @Subz, thanks for your quick reply :)
I did manage to run the .exe, and now I have to read the STDOut from the shell... ( By the way, I use IniReadSection(), but I didn't post that code ( because it's in another function, sorry :D
I can use StdoutRead() in a loop or... I don't know... I've never used that function before :D
Thank you again :) 


Click here to see my signature:

Spoiler

I will always thank you for the time you spent for me.
I'm here to ask, and from your response, I'd like to learn.
By my knowledge, I can help someone else, and "that someone" could help in turn another, and so on.

Share this post


Link to post
Share on other sites
Subz

So confused to what your question is? :) 

Here is a basic StdOutRead procedure, not sure if that's what you were after?

Local $sOutput = ""
    While 1
        $sOutput &= StdoutRead($iPID)
        If @error Then ExitLoop
    WEnd
    MsgBox(48, "Stdout Read:", $sOutput)

 

Share this post


Link to post
Share on other sites
FrancescoDiMuro

@Subz
Sorry for my "confusion"... :) Read below :D 

@Jos
Happy to see you here :) I've managed to run the .exe as I said in the previous post, and know I have to read the content of the STDOut, in order to compare the result from the ".exe" I've launched, and do what I need to do :)


I tried in this way, but it returns blank "result":
 

Local $sSTDOutRead = ""
While 1
    $sSTDOutRead = StdoutRead($iPID)
    If @error Then ExitLoop
WEnd
MsgBox($MB_ICONINFORMATION, "", $sSTDOutRead) ; This returns blank MsgBox!

Thanks for you help guys :) 

EDIT: I've managed to correct the $sSTDOutRead with the "&" before the =...
@TheDcoder
I'll try it asap! Thanks :D 

Edited by FrancescoDiMuro

Click here to see my signature:

Spoiler

I will always thank you for the time you spent for me.
I'm here to ask, and from your response, I'd like to learn.
By my knowledge, I can help someone else, and "that someone" could help in turn another, and so on.

Share this post


Link to post
Share on other sites
TheDcoder

You can try my Process UDF which is capable of returning the STD output for you :)

 


AutoIt.4.Life Clubrooms - Life is like a Donut (secret key)

Spoiler

My contributions to the AutoIt Community

Some messages & Apologizes:

If I hurt you, Please accept my apologies, I never (regardless of the situation) mean to hurt anybody!!!

Also, I am very busy with my project so I will appear in the last row of the online list, if you want to contact me: Email@TheDcoder.xyz

Or you can have a nice chat with me in freenode, I use the same nick on freenode too!

3fHNZJ.gif

PLEASE JOIN ##AutoIt AND HELP THE IRC AUTOIT COMMUNITY!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • nacerbaaziz
      By nacerbaaziz
      Hi dear
      With this script you can print Unicode text in the CMD screen
      the script is  easy to use
      just you  write the text that contains Unicode in the first input
      and the script automatically reflect the code in the second input
       you can copy the text to the clipboard
      or you can try printing the text in the CMD window
      I apologize to everyone for colors and shape if not appropriate
      I'm a blind man and I do not see
      Thank you for your understanding
      Greetings to all of youCmdUtM.au3
    • nacerbaaziz
      By nacerbaaziz
      Hello all
      I have a question please
      I have a link to an .exe file
      for example this link
      https://www.nvaccess.org/files/nvda/releases/2017.1/NVDA_2017.1.exe
      I want to check if the link is exists orno
      surely  Without downloading the file
      is there any  function or a way to  do this?
      Thanks in advance
    • Tippex
      By Tippex
      How can I detect when a Command Prompt window has returned to idle with prompt for the next command please?
      For example, after a large paste:
                              ControlClick("[CLASS:ConsoleWindowClass]", "", "", "right")
                              ControlSend("[CLASS:ConsoleWindowClass]", "", "", "p") 
      a large paste may be something like copying some large files which may go on for some time after the paste command has been given.
       
       
       
    • Simpel
      By Simpel
      Hi.
      Thanks to this post (https://www.autoitscript.com/forum/topic/189553-writing-to-cmd/?do=findComment&comment=1361142) I can now write a helpfile to the cmd when for instance passing parameter -h or -help at cmd. But then cmd is blocked by the script (I had to free it with CTRL+BREAK):
      #include <WinAPI.au3> _WinAPI_AttachConsole() $hConsole = _WinAPI_GetStdHandle(1) _WinAPI_WriteConsole($hConsole, "Print helpfile................" & @CRLF) Inside MSDN Library then I found this sentence: A process can use the FreeConsole function to detach itself from its console.
      But I don't find something like _WinAPI_FreeConsole(). How can I do it in another way?
      Regards, Conrad
    • TheAutomator
      By TheAutomator
      A fullscreen console with custom commands!

      Introduction:
      Hi everyone!
      This funny project started as a question in the help section:
      https://www.autoitscript.com/forum/topic/174404-edit-detect-key-before-updating-content/
      I'd like to share this script with everyone that is interested. 
       
      Why would I want it?
      You like the old style fullscreen console (like in the old day's), You can add custom commands, You can customize the font a lot more compared to cmd.exe, You can share ideas or add tweaks to the script.  
      Still to do:
      Write a simple custom programming language to implement this tool. Writing a little help file / pdf to describe my little programming language. Add little sound effects like a beep if there is a syntax error (optional). Clean up and modify Console.Au3 content. Add an option to have to type a login password (optional). Make an optional installer that also gives scripts for this tool a custom icon and open with command. ...Call Neo?  
      Thanks to:
      xxaviarxx: debugging, some ideas. jguinch: debugging, adding a bunch of tweaks and ideas. kylomas: debugging, new ideas.  
      Edits and updates:
      Added usage of tab key in edit control Edit has focus now on startup I'm currently rewriting a simple custom programming language to implement this tool.  
      UDF download: Console.au3
       
      Regards
      TheAutomator
×