对文件夹中的所有文件执行命令的脚本 [英] Script to execute command to all files in folder

查看:391
本文介绍了对文件夹中的所有文件执行命令的脚本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是Freebsd/nginx的新手,因此类似的质量保证对我没有帮助;( 我正在运行代码:

I am new to Freebsd/nginx, so similar QAs did not help me ;( I was running a code:

$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)时&我正在一个接一个地处理文件. cnvt xls2csv 是转换器. 现在,我已经上传了ajax,并希望对文件夹中的所有文件执行 exec 命令,并保留原始文件名.我试图运行相同的代码,但将result.xls替换为 *(star),但它不起作用.

when my file names were constant(result.xls which then converted to result.csv) & I was processing files one by one; cnvt and xls2csv are converters. Now I have ajax upload and want to perform exec command for all files in a folder, keeping original file name. I tried to run same code with result.xls replaced with *(star) but it did not work.

我有什么:

包含excel文件的tmp/xls文件夹

folder tmp/xls with excel files

我想要什么:

将inna文件夹中的所有excel文件转换为.csv,并保留其原始名称. 将不胜感激.

convert all excel files inna folder to .csv keeping their original names. Will appreciate any help.

更新:对目录中所有文件执行命令以创建/编辑脚本的最佳方法,这使bash本身对目录中所有文件的操作更加容易.祝你好运.

UPDATE: the best way to execute a command for all files in directory to create/edit a script to make that, operating on all files in directory much easier in bash itself. Good luck.

推荐答案

查看如何提取扩展名...

See how you extracted the extension...

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

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

您可以查看 pathinfo文档,然后您将了解如何获取没有路径或扩展名的文件名:

You can check the pathinfo docs and you'll see how to get the filename without path or extension:

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

然后您可以使用它...

Then you can use that...

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");
} 

这篇关于对文件夹中的所有文件执行命令的脚本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆