对文件夹中的所有文件执行命令的脚本

我是Freebsd / nginx的新手,所以类似的QA没有帮助我;(我正在运行一个代码:

$ext = pathinfo ($_FILES['rawexcel']['name'][$i], PATHINFO_EXTENSION); //get extension of file, run different converters depending on extension if ($ext == 'xlsx' ) { exec("/usr/local/bin/cnvt /var/tmp/xls/result.xlsx /var/tmp/result.csv "); } else if ($ext == 'xls' ) { exec("/usr/local/bin/xls2csv -x /var/tmp/xls/result.xls* -b WINDOWS-1251 -c /var/tmp/result.csv -a UTF-8"); } /var/tmp/xls/ 

当我的文件名是常量(result.xls然后转换为result.csv)&我正在处理文件一个接一个; cnvtxls2csv是转换器。 现在我有一个AJAX上传,并希望执行一个文件夹中的所有文件执行命令,保持原来的文件名。 我试图运行相同的代码与result.xls *(星)代替,但没有奏效。

我拥有的:

文件夹tmp / xls与excel文件

我想要的是:

将所有excel文件inna文件夹转换为.csv保持原来的名称。 将感谢任何帮助。

更新: 对目录中的所有文件执行命令以创build/编辑脚本的最佳方式,使得在目录中的所有文件上运行bash本身更容易。 祝你好运。

看看你是如何提取扩展…

$ ext = pathinfo($ _FILES ['rawexcel'] ['name'] [$ i],PATHINFO_EXTENSION);

你可以检查pathinfo文件 ,你会看到如何得到没有路径或扩展名的文件名:

 $filename = pathinfo($_FILES['rawexcel']['names'][$i], PATHINFO_FILENAME); 

那你可以用那个…

 if ($ext == 'xlsx' ) { exec("/usr/local/bin/cnvt /var/tmp/xls/$filename.xlsx /var/tmp/$filename.csv "); } else if ($ext == 'xls' ) { exec("/usr/local/bin/xls2csv -x /var/tmp/xls/$filename.xls -b WINDOWS-1251 -c /var/tmp/$filename.csv -a UTF-8"); }