在同一个system()调用中连接两个命令

时间:2013-02-25 17:16:20

标签: c windows

int main()
{
  // system("start cd i:");            //1. changing to I: but again going back to c:
     system(" dir i: >>d:\txt.txt");   //2. "Access denied."
     getch();
return 0;
} 

有人可以在第一和第二句中解释此代码生成的输出。 请建议如何在同一system()调用中连接这两个命令。

3 个答案:

答案 0 :(得分:7)

system(" dir i: >>d:\txt.txt"); 

应该是

system(" dir i: >>d:\\txt.txt"); 

否则您尝试创建一个文件“tab”,后跟“xt.txt”,这是不允许的。

答案 1 :(得分:1)

您可以使用&连接两个命令。

system("cd i: &  dir i: >>d:\\txt.txt");   

另请注意,您的路径中需要\\而不是\ - \需要转义。

答案 2 :(得分:0)

cd命令用于更改当前驱动器的目录。

要更改驱动器,只需发出驱动器号本身后跟:

所以要切换到驱动器I:,请发出:

I:

命令解释器允许使用&

连接两个命令
system("command1 & command2");

在你的情况下会变成:

system("I: & dir >>d:\\txt.txt")

另外,您可以将命令处理器要执行的每个命令添加到文本文件中,每行一个命令,而不是将文件命名为something.bat,只需从命令行调用它即可。然后,每条线将由命令处理器执行。

进一步阅读:http://en.wikipedia.org/wiki/Batch_file