MATLAB: Control Cygwin through Matlab script

cygwin64

Hello, I would consider myself as a rookie matlab user. I have installed Cygwin64 on my computer and use it to process .env files. Instead of processing one by one each .env file I want to create a matlab script which will guide Cygwin64 to the specified directory and process each .env file. How can I create this script? Thanks in advance!

Best Answer

The easiest way to handle this is at the shell level, rather than at the MATLAB level.
Create a file that has pairs of items on each line. The first thing on the line should be the directory name, using forward slashes instead of backslashes. If there are any spaces in the directory name, proceed them with spaces. The second thing on the line should be the file name, converted the same way. For illustration I will call this file InputSpecs . For example,
C:/Users/Pas/Documents\ And\ Files/Project1 dataset\ 5a.env
C:/Users/Pas/Documents\ And\ Files/Project7 20150830_second.env
Then prepare a second file, that looks like
while read dirname filename; do cd "$dirname"; COMMANDHERE < "$filename"; done
where COMMANDHERE should be replaced by the name of the executable. If there is some other way to indicate that the file is input, then use that instead of the "<". For illustration I will call this file CommandScript. For example,
while read dirname filename; do cd "$dirname"; afnis -infile "$filename"; done
Then, to run all of those, you can
system("cygwin CommandScript < InputSpecs")
Related Question