Linux:如何将文件列表传递给linux命令?

时间:2016-02-23 20:21:56

标签: linux windows shell

我创建了一个非常小的c ++应用程序,它创建了一个创建shell脚本的脚本但是在shell中有更简单的方法吗?在Windows中,我只是将文件列表拖放到.bat文件中。 我想做一些事情,比如将文件列表作为自动化多次传递给linux应用程序。为什么?我想使用ffmpeg将我的MP3文件转换为M4A文件。

4 个答案:

答案 0 :(得分:1)

尝试类似的事情:

outputlines

PS我没有测试它,所以你可能需要调试它......

答案 1 :(得分:0)

有几种方法可以解决这个问题,因为您可以将文件列表放在一个单独的文件中,然后将该文件作为输入传递给您的脚本,如下所示:

cat filelist.txt | bash yourScript.sh

当然,您必须自己处理脚本中列表的输入。

答案 2 :(得分:0)

感谢。我的帐户有问题。所以我不得不再做一个。这很敏感。感谢您使用xargs解决方案。 这段代码有问题,但它生成了一个文本文件,用于处理命令,如带有shell命令的大批处理文件。

#include <iostream>
#include <cstdlib>
#include <fstream>
#include <istream>
#include <string>
using namespace std;

int main()
{
string hello;
string hello2;
string one; 
string two;
string dummy;
ifstream fp;
ofstream fp2;
//FILE *fp;
//read file until done
//cout<<"Okay I'm creating a list."<<endl;
system("clear ; ls > stuff.txt");
//cout<<"reporting it back..."<<endl;
//system("cat stuff.txt");
//fp = fopen("stuff.txt","r");
fp.open("stuff.txt");
fp2.open("robot.sh");
if (!fp && !fp2)
    exit(1);

while(fp)
{
hello = "command -i";
fp>>hello;
//a messy way to get the last line 
fp2<<"command -i"<<hello<<" -more commands "<<hello<<".ext"<<endl;
cout<<"command -i"<<hello<<" -more commands "<<hello<<".ext"<<endl;
}
fp.close();
fp2.close();
return 0;
}

答案 3 :(得分:0)

(我没试过这个) 创建一个使用一个参数作为输入文件的shell脚本。 在该脚本中,总是双引号变量(空格!)

配置Windows,使其显示在资源管理器的右键单击上下文菜单中,甚至配置脚本以打开所有MP3文件。