h4xs4w Posted December 1, 2010 Share Posted December 1, 2010 How do I send input and receive output from a command prompt without: 1. Using send (not the most reliable/efficient code from my understanding) 2. Without compiling the script as a CUI. I've tried STDIN/STDOUT, but can't seem to either enter text into the command prompt or receive the output of commands entered in the command prompt. And from my understanding, ControlSend/ControlGetText won't work either as the command prompt does not have the standard Windows controls. Suggestions? Thank you all for your time and assistance with this! Link to comment Share on other sites More sharing options...
JohnOne Posted December 1, 2010 Share Posted December 1, 2010 I've tried STDIN/STDOUT, but can't seem to either enter text into the command prompt or receive the output of commands entered in the command prompt.I dont know an awful lot about commant prompt, but I will offer you this.You are doing something wrong, I suggest you post the code you have tried. AutoIt Absolute Beginners Require a serial Pause Script Video Tutorials by Morthawt ipify Monkey's are, like, natures humans. Link to comment Share on other sites More sharing options...
Ace08 Posted December 1, 2010 Share Posted December 1, 2010 you know PKZIP i've been using this to encrypt some of my files using Autoit i have this code Run("cmd /c C:\ENC\PKZIP.EXE -astest -n+ " & $ZipFilePath & " " & $UnFilePath) who knows this might help your problem Work smarter not harder.My First Posted Script: DataBase Link to comment Share on other sites More sharing options...
Tankbuster Posted December 1, 2010 Share Posted December 1, 2010 I added a stripped down example i've done some time ago, it's working but now with out any sense, but head for the lines:Local $foo = Run(@ComSpec & " /c " & $ShellScriptName, $Workdir, @SW_HIDE, 2 + 4)$line = $line & StdoutRead($foo)So the magic is done with :StdoutReadandof course not in my example:StdoutWriteexpandcollapse popup#include <GuiEdit.au3> #include <GUIConstantsEx.au3> #include <ProgressConstants.au3> #include <ScrollBarConstants.au3> Opt('MustDeclareVars', 1) ;~ Global $ShellScriptName = $CmdLine[1] ;~ Global $Workdir = $CmdLine[2] ;~ Global $CounterFiles = $CmdLine[3] global $ShellScriptName="D:\1work\prog\DEMO_LOOP.CMD" global $Workdir="D:\1work\prog\" Global $StartCounter = 1000 Global $ProgressStep = 100 / $StartCounter ProgressGui() Sleep(1000) Exit Func ProgressGui() Local $progressbar1, $progressbar2, $wait, $msg, $m, $outputwindow, $CurrentCounter, $infotext GUICreate("Progress on files...", 420, 300) $progressbar1 = GUICtrlCreateProgress(10, 10, 200, 20) GUICtrlSetColor(-1, 32250) $progressbar2 = GUICtrlCreateProgress(10, 40, 200, 20, $PBS_SMOOTH) $infotext = GUICtrlCreateLabel("INFO:", 10, 70, 200, 20) $outputwindow = GUICtrlCreateEdit("Text", 20, 100, 350, 150) GUISetState() $wait = 20; wait 20ms for next progressstep $CurrentCounter = 10; Local $foo = Run(@ComSpec & " /c " & $ShellScriptName, $Workdir, @SW_HIDE, 2 + 4) Local $line Do $msg = GUIGetMsg() $line = $line & StdoutRead($foo) GUICtrlSetData($outputwindow, $line) _GUICtrlEdit_Scroll($outputwindow, $SB_SCROLLCARET) GUICtrlSetData($progressbar1, $CurrentCounter * $ProgressStep) GUICtrlSetData($progressbar2, (100 - $CurrentCounter * $ProgressStep)) Sleep($wait) Until $CurrentCounter = 0 GUICtrlSetData($infotext, "Files to do:" & $CurrentCounter & " from starting " & $StartCounter & " COMPLETE") EndFunc ;==>ProgressGuiDoes this help you? So posting your code would be helpful..... Link to comment Share on other sites More sharing options...
Tankbuster Posted December 1, 2010 Share Posted December 1, 2010 (edited) I forgot to add the files, sorry..... here are the files for my example. (the .AU3 and two .CMD for DEMO) Change the "D:\1work" to fit to your need, was very q&d example. PROGRESS_SIMPLE.zip Edited December 1, 2010 by Tankbuster Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now