cwakefield Posted January 23, 2013 Posted January 23, 2013 As part of an application I am writing, I need to find all files matching a criteria on a computer. Based on examples I found, once the Run command is complete, the loop should exit, however I found that the loop would run indefinitely. I ended up adding some timer logic, to automatically exit the loop if 5 seconds passed. Does anyone know why my loop will not exit automatically when the Run function finishes? $StartTime = TimerInit() $Config_File_Path = Run(@ComSpec & " /c dir /s /b application.config", "C:\", @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD) While 1 $line = StdoutRead($Config_File_Path) ConsoleWrite($line) If @error <> 0 Then ExitLoop If TimerDiff($StartTime) > 5000 Then ExitLoop Wend
JohnOne Posted January 23, 2013 Posted January 23, 2013 $StartTime = TimerInit() $Config_File_Path = Run(@ComSpec & " /c dir /s /b application.config", "C:\", @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD) While ProcessExists($Config_File_Path) $line = StdoutRead($Config_File_Path) ConsoleWrite($line) If @error <> 0 Then ExitLoop If TimerDiff($StartTime) > 5000 Then ExitLoop Wend AutoIt Absolute Beginners Require a serial Pause Script Video Tutorials by Morthawt ipify Monkey's are, like, natures humans.
BrewManNH Posted January 23, 2013 Posted January 23, 2013 Using your original script I fixed it for you. The ConsoleWrite was causing the @Error check to never work the way you wanted it to. $StartTime = TimerInit() $Config_File_Path = Run(@ComSpec & " /c dir /s /b application.config", "C:\", @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD) While 1 $line = StdoutRead($Config_File_Path) If @error <> 0 Then ExitLoop ConsoleWrite($line) If TimerDiff($StartTime) > 5000 Then ExitLoop WEnd You have to check @error immediately after the function that might cause the error, ConsoleWrite will reset the @error causing it to always be 0 by the time you checked it. If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag GudeHow to ask questions the smart way! I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from. Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays. - ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script. - Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label. - _FileGetProperty - Retrieve the properties of a file - SciTE Toolbar - A toolbar demo for use with the SciTE editor - GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI. - Latin Square password generator
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