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()
调用中连接这两个命令。
system(" dir i: >>d:\txt.txt");
应该
system(" dir i: >>d:\\txt.txt");
否则,您尝试创建一个文件“tab”,后跟“xt.txt”,这是不允许的。
您可以将两个命令与&
.
system("cd i: & dir i: >>d:\\txt.txt");
另请注意,您需要\\
而不是\
在您的路径中-\
需要转义。
该cd
命令是更改当前驱动器的目录。
要更改驱动器,只需发出驱动器号本身,后跟:
.
所以要切换到 drive I:
,发出:
I:
命令解释器允许使用 a 连接两个命令&
:
system("command1 & command2");
在你的情况下会变成:
system("I: & dir >>d:\\txt.txt")
或者,您可以将希望由命令处理器执行的每个命令添加到文本文件中,每行一个命令,而不是将文件命名为something.bat
并从命令行调用它。然后每行将由命令处理器执行。