2
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()调用中连接这两个命令。

4

3 回答 3

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

应该

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

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

于 2013-02-25T17:20:37.700 回答
1

您可以将两个命令与&.

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

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

于 2013-02-25T17:28:32.180 回答
0

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

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

所以要切换到 drive I:,发出:

I:

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

system("command1 & command2");

在你的情况下会变成:

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

或者,您可以将希望由命令处理器执行的每个命令添加到文本文件中,每行一个命令,而不是将文件命名为something.bat并从命令行调用它。然后每行将由命令处理器执行。

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

于 2013-02-25T17:24:40.233 回答