C语言中如何连续执行多条CMD命令

意思是要保存上一条命令的状态。比如说我在DOS分别下执行md1cd1md2这3条命令后会创建一个“1”文件夹,同时在“1”里面创建一个“2”文件夹。但是如果我在C中执行s... 意思是要保存上一条命令的状态。
比如说我在DOS分别下执行md 1 cd 1 md 2 这3条命令后会创建一个“1”文件夹,同时在“1”里面创建一个“2”文件夹。
但是如果我在C中执行system("md 1");system("cd 1");system("md 2");后,它会在它会在当前目录下同时生成一个“1”文件夹和一个“2”文件夹。也就
是说每执行一条语句后它又回到了初始状态。请问有什么好的解决办法。

还有一个问题:C中如何判断哪个盘为U盘。
二楼的第一个问题是对的。但我不是需要在1里面创建一个2. 我是想知道C中如何连续执行多条DOS命令。
展开
 我来答
dong_1984dd
推荐于2017-10-02 · TA获得超过1.1万个赞
知道小有建树答主
回答量:1070
采纳率:100%
帮助的人:220万
展开全部
  1. 参考下列C 或C++ 代码:

  2. bool ConsoleCompiler(char * ch)
    {
        // 建立批处理文件
        std::ofstream fout( "CBStudy.cmd" );
        if ('v'==ch[0]) {
            fout << "@echo off\nset PATH=" << CBS_vcbin << ";%PATH%\nset INCLUDE=" <<CBS_include
                 <<"\nset LIB=" << CBS_lib <<"\ncolor a\n@echo 欢迎使用命令行VC2010编译器中文版  你可以使用TAB自动补全\ncl\ncd \\mycpp\n" ;
        }
        if ('g'==ch[0]) {
            fout << "@echo off\nset PATH=" << CBS_gccbin << ";%PATH%\ncolor a\n@echo 欢迎使用命令行 GCC 编译器中文版  你可以使用TAB自动补全\ng++ -v\ncd \\mycpp\n" ;
        }
        fout.close();

  3.     // 执行批处理文件
        char szCommandLine[] = "cmd /k CBStudy.cmd";
        STARTUPINFO si = { sizeof(si) };
        PROCESS_INFORMATION pi;

  4.     si.dwFlags = STARTF_USESHOWWINDOW; // 指定wShowWindow成员有效
        si.wShowWindow = TRUE;   // 此成员设为TRUE的话则显示新建进程的主窗口,
        // 为FALSE的话则不显示
        BOOL bRet = ::CreateProcess (
                        NULL,   // 不在此指定可执行文件的文件名
                        szCommandLine,  // 命令行参数
                        NULL,   // 默认进程安全性
                        NULL,   // 默认线程安全性
                        FALSE,   // 指定当前进程内的句柄不可以被子进程继承
                        CREATE_NEW_CONSOLE, // 为新进程创建一个新的控制台窗口
                        NULL,   // 使用本进程的环境变量
                        NULL,   // 使用本进程的驱动器和目录
                        &si,
                        &pi);
        return true;
    }

bees007
2009-12-07 · TA获得超过302个赞
知道小有建树答主
回答量:525
采纳率:100%
帮助的人:372万
展开全部
你用system()调用,那是多进程的,同时执行。
你要想挨个执行,可以等待前一条命令执行结束返回后,再执行下一条命令。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gao745
推荐于2017-09-10 · TA获得超过426个赞
知道小有建树答主
回答量:442
采纳率:0%
帮助的人:345万
展开全部
最简单的方法,就是建立一个批处理文件,然后再system("*.bat");调用一下。。就行了。。

而且跟LZ说,用你的方法,我试了一下,完全可以,不知你是怎么弄得??

用的是WinTC,估计LZ操作有误。。

有问题百度HI我,讨论。。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
topcol
2009-12-04 · TA获得超过1977个赞
知道大有可为答主
回答量:1213
采纳率:0%
帮助的人:533万
展开全部
1. md 1\2

2. fsutil fsinfo /?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
YYatBaid
2009-12-07 · 超过26用户采纳过TA的回答
知道答主
回答量:171
采纳率:100%
帮助的人:38.5万
展开全部
可以用一个批处理文件呀,运行这个文件就行了,这是最省事儿的方法了
.bat 文件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式