我想在我的C ++控制台应用程序中使用Windows CMD树命令。我的代码:
system("cd c:/");
system("tree");
问题是命令树将在程序运行的文件夹路径上执行,而不是在C://上执行。有办法解决这个问题吗?
答案 0 :(得分:1)
为什么不:
system("tree c:\");
TREE [drive:][path] [/F] [/A]
/F Display the names of the files in each folder.
/A Use ASCII instead of extended characters.
答案 1 :(得分:0)
您可以使用windows.h中的SetCurrentDirectory。这个页面有一个演示: http://msdn.microsoft.com/en-us/library/windows/desktop/aa363806%28v=vs.85%29.aspx
答案 2 :(得分:0)
你的问题是system("cd c:/")
在shell中执行,然后shell退出。 [这也是错误的,因为你使用了错误的斜杠,它应该是"cd c:\\"
- 假设我们在谈论Windows系统时,需要在输出中产生一个反斜杠的双反斜杠。
有几种不同的方法可以做到这一点:
使用chdir()
(或SetCurrentDirectory
)函数调用来更改当前工作目录的主进程,然后调用system("...")
。这是最简单的解决方案。
将所有命令生成到批处理文件中,然后将批处理文件传递给system
。
_popen()
的命令打开命令shell,并将命令传递到从中获取的管道。 答案 3 :(得分:0)
仅适用于Windows中的程序,包括“windows.h”,然后
SetCurrentDirectory("c:/");
system("pwd");
答案 4 :(得分:0)
虽然我仍然很好奇你为什么要这样做,但你可以尝试在一次system()
电话中运行所有命令:
system("cd c: && c: && tree");
如果您当前不在驱动器c:
(因为c:
没有这样做),则需要第二个cd
来更改驱动器号。