ChaoticBlue Posted November 19, 2012 Posted November 19, 2012 Hello, I seem to be having trouble with getting %errorlevel% codes from the cmd prompt. I'm trying to add some error checking to a script. Here's a snipit: Local $logfile = "D:\scripting_tests\build_log.txt" _RunDOSDelay('ipconfig','IPCONFIG') _RunDOSDelay("C:\Windows\System32\inetsrv\appcmd set config /section:defaultDocdument /-files.[value='default.asp']","IIS!") Func _RunDOSDelay($cmd, $program = "") _RunDos($cmd) If @error Then MsgBox(4096, "Value", @error) WriteLog("Unable to install a program - " & $program) Else MsgBox(4096, "Value", @error) WriteLog($program & " - Completed Successfully!") EndIf Sleep(6000) EndFunc ;==>_RunDOSDelay Func WriteLog($notice) If Not FileExists($logfile) Then _FileCreate($logfile) EndIf _FileWriteLog($logfile, $notice, -1) Return EndFunc ;==>WriteLog I've tried several things to do this (compiling as CUI, using RunWait in combination with RunDos) and just can't seem to get it. In the above example, I purposefully made a type to hopefully get it to return an error. I also tried running "%errorlevel% after the command on the same window; I always seem to get a return saying the command completed successfully, even though it didn't. Any help would be appreciated! I've done a lot of searching, but maybe I'm just overlooking the answer and need a nudge in the right direction.
FireFox Posted November 19, 2012 Posted November 19, 2012 Hi, Without trying to fix your code, why don't you try the Run function? You can then use the stderr function. Br, FireFox.
dany Posted November 19, 2012 Posted November 19, 2012 Read the manual on _RunDos, it returns the exit code of the command. That's the same value as %ERRORLEVEL% gets set to.#include <Process.au3> Global $iErrorLevel =_RunDos('ipconfig') MsgBox(0,'', 'exit code: ' & $iErrorLevel & @CRLF & '@error: ' & @error) $iErrorLevel =_RunDos('ipconfi') ; Typo! MsgBox(0,'', 'exit code: ' & $iErrorLevel & @CRLF & '@error: ' & @error) $iErrorLevel =_RunDos('ipconfig /wtf') ; Switch doesn't exist! MsgBox(0,'', 'exit code: ' & $iErrorLevel & @CRLF & '@error: ' & @error) [center]Spiderskank Spiderskank[/center]GetOpt Parse command line options UDF | AU3Text Program internationalization UDF | Identicon visual hash UDF
guinness Posted November 19, 2012 Posted November 19, 2012 Going back to basics, you should look at RunWait in the help too. UDF List: Reveal hidden contents _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018
ChaoticBlue Posted November 19, 2012 Author Posted November 19, 2012 Thanks for the suggestions, I'll take a look at the tips. Appreciate it!
ChaoticBlue Posted November 19, 2012 Author Posted November 19, 2012 I changed to using $iErrorLevel as Dany suggested and was able to get everything I need. Much appreciated!
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