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

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

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

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

要更改驱动器,只需发出驱动器盘符,然后按:

所以要切换到驱动器I: :,问题:

 I: 

命令解释器允许使用&连接两个命令:

 system("command1 & command2"); 

你的情况会变成:

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

或者,您可以将每个想要由命令处理器执行的命令添加到文本文件中,每行一个命令,而不是将文件命名为something.bat ,只需从命令行调用该命令即可。 每一行将由命令处理器执行。

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

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

应该

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

否则你尝试创建一个文件“选项卡”,后面是不允许的“xt.txt”。

你可以连接两个命令与一个&

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

另外请注意,您需要\\而不是\在您的路径 – \需要被转义。