Welcome to MorphOS-Storage, a webserver dedicated to MorphOS users. ©2016-2024 Meta-MorphOS.org
Description:Execute cmd for every argument/file/line.
Developer/Porter:Thomas Igracki
Short: Execute cmd for every argument/file/line
Author: Thomas@Igracki.de (Thomas Igracki)
Type: util/cli
Version: 1.9
Architecture: ppc-morphos; ppc-amigaos; m68k-amigaos


Execute "command" for every word in "strings".
A "%s" in "command" will be replaced with the current word in "strings".
If a command returned an error, the execution gets aborted!

If you specify FILE on the commandline every word in "strings" is treated as a file
incl. pattern matching! Non existing files are skipped.
f.e. Foreach FILE "ram:#?" "sys:#?" DO "echo %s"

I use it in combination with my ecx-script to compile multiple sources with one command.

Its written in AmigaE with the ecx compiler by Leif Salomonsson!
I also included a 68k and AmigaOS4 version.

05-Sep-16: v1.9
fix: a small fix with OR handling

24-Mai-16: v1.8
fix: Foreach didn't hold the Result2 value anymore due to recently changes
new: ENV:Foreach_LastFile holds the last processed filename
usefull f.e. if you want to get the filename which aborts the execution

14-Mai-16: v1.7
new: added a FailAt/K/N option, like Shell's FailAt commmand, to change
failure limit of executed commands (0=Ok, 5=Warn, 10=Error, 20=Fail)
To NOT abort execution if only one file throws an error
Default is 10

fix: Starting Foreach with no arguments printed many bogus chars

30-Mar-15: v1.6
new: added LINE/S, to do a command for every line in a file
The files are specified via the "<strings>" options.
Multiple files and pattern matching are supported and the ALL option
fix: Sometimes the ALL/S switch to return recursively all files didn't worked correct

23-Dec-14: v1.5
fix: option VERBOSE/S didn't prints the argument in front of the output sometimes,
f.e. if c:Type was used
new: added FREESTACK/S option to show the free stack, only for debugging purpose
new: you can now use upto 8 "%s" in the DO option

11-Mar-14: v1.4
chg: Raised stack to 32KB, cause I have some weird hits sometimes, lets see if it helps...

05-Aug-13: v1.3
chg: The VERBOSE option now prints the current argument in front of the output
new: added LF=AddLF/S switch, append a LF after the commands output.
Usefull if the command doesn't outputs an LF at the end

01-Aug-13: v1.2
new: added ALL=ALLFILES/S switch, to recursively scan directories, if FILE is set
fix: if FILE is set, then don't execute the command for directories

09-Jul-13: v1.1
new: added a FILE/S switch, "strings" are then treated as files, incl. pattern matching!

01-Jul-13: v1.0 first release

Upload Date:Feb 28 2017
Size:8 KB
Last Comments