Skeeter Posted April 12, 2016 Share Posted April 12, 2016 First time poster and serious AutoIt noob. I'm looking for direction in understanding the For command as my code is coming from a batch file that works but I would like to pretty it up for the end user. This works: expandcollapse popup#Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Icon=..\..\..\..\Program Files (x86)\AutoIt3\SciTE\Printer.ico #AutoIt3Wrapper_Outfile=Send_to_Xerox.exe #AutoIt3Wrapper_UseUpx=y #AutoIt3Wrapper_Run_Au3Stripper=y #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** #include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #Region ### START Koda GUI section ### Form= $SimpleGUI = GUICreate("Send to Xerox", 286, 75, -1, -1) $Test = GUICtrlCreateButton("TEST", 8, 8, 125, 25) $Production = GUICtrlCreateButton("PRODUCTION", 144, 8, 125, 25) $Exit = GUICtrlCreateButton("EXIT", 100, 40, 75, 25) GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif") GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### Run(@ComSpec & ' /c ' & 'xcopy C:\Windows\winsxs\amd64_microsoft-windows-p..ting-lprportmonitor_31bf3856ad364e35_6.1.7601.17514_none_1229a6f0546e2346\* c:\windows\syswow64 /Q /Y', '', @SW_HIDE) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Production PRODUCTION() Case $Test TEST() Case $Exit Exit EndSwitch WEnd Func TEST() RunWait(@ComSpec & ' /c ' & 'w2test.bat', '', @SW_HIDE) RunWait(@ComSpec & ' /c ' & 'move *.pdf \\server\shared\folder') WinClose('Send to Xerox') EndFunc ;==>TEST Func PRODUCTION() RunWait(@ComSpec & ' /c ' & 'w2prod.bat', '', @SW_HIDE) RunWait(@ComSpec & ' /c ' & 'move *.pdf \\server\shared\folder') WinClose('Send to Xerox') EndFunc ;==>PRODUCTION And this does not: expandcollapse popup#Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Icon=..\My Scripts\Printer.ico #AutoIt3Wrapper_Outfile=Send to IT printer.exe #AutoIt3Wrapper_UseUpx=y #AutoIt3Wrapper_Run_Au3Stripper=y #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** #include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #Region ### START Koda GUI section ### Form= $SimpleGUI = GUICreate("Send to Xerox", 286, 75, -1, -1) $Test = GUICtrlCreateButton("TEST", 8, 8, 125, 25) $Production = GUICtrlCreateButton("PRODUCTION", 144, 8, 125, 25) $Exit = GUICtrlCreateButton("EXIT", 100, 40, 75, 25) GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif") GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### Run(@ComSpec & ' /c ' & 'xcopy C:\Windows\winsxs\amd64_microsoft-windows-p..ting-lprportmonitor_31bf3856ad364e35_6.1.7601.17514_none_1229a6f0546e2346\* c:\windows\syswow64 /Q /Y', '', @SW_HIDE) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Production PRODUCTION() Case $Test TEST() Case $Exit Exit EndSwitch WEnd Func TEST() RunWait(@ComSpec & ' /c ' & 'for %%f in (*.pdf) do LPR -SXXX.XXX.XXX.XXX -PHHSC_W2 "%%f"', '', @SW_HIDE) RunWait(@ComSpec & ' /c ' & 'move *.pdf \\server\share\folder') WinClose('Send to Xerox') EndFunc ;==>TEST Func PRODUCTION() RunWait(@ComSpec & ' /c ' & 'for %%f in (*.pdf) do LPR -SXXX.XXX.XXX.XXX -PHHSC_W2 "%%f"', '', @SW_HIDE) RunWait(@ComSpec & ' /c ' & 'move *.pdf \\server\shared\folder') WinClose('Send to Xerox') EndFunc ;==>PRODUCTION It seems since the For command is present in AutoIt that it tries to process it instead of sending it to cmdline where it is known to work. Is there a different way to write it so it still looks for all files in the directory it is being run in and loops to process each *.pdf accordingly then moves all *.pdf to the server share. I'm trying to keep it all within the generated .exe file instead of calling batch files. And yes...this must be performed using LPR, it is the only way the printshop will accept the files. In the first script the batch files contains the same text as the bottom script. Any help is greatly appreciated. Link to comment Share on other sites More sharing options...
Developers Jos Posted April 12, 2016 Developers Share Posted April 12, 2016 try: RunWait(@ComSpec & ' /c for %f in (*.pdf) do LPR -SXXX.XXX.XXX.XXX -PHHSC_W2 "%f"', '', @SW_HIDE) and when it doesn't work check what is happening with: RunWait(@ComSpec & ' /k for %f in (*.pdf) do LPR -SXXX.XXX.XXX.XXX -PHHSC_W2 "%f"', '') Jos SciTE4AutoIt3 Full installer Download page - Beta files Read before posting How to post scriptsource Forum etiquette Forum Rules Live for the present, Dream of the future, Learn from the past. Link to comment Share on other sites More sharing options...
Skeeter Posted April 12, 2016 Author Share Posted April 12, 2016 Jos you rock! Works perfectly. I've been beating my head on this one for a week and didn't want to ask for help. Thanks! 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