读书人

在c语言中施行多条cmd命令。

发布时间: 2012-08-02 11:35:25 作者: rapoo

在c语言中执行多条cmd命令。。。
我想上传文件到ftp上,用C语言,怎样使得能够在cmd中一次输入

ftp 192.168.1.1 连接ftp
admin 提示输入用户名
admin 提示输入密码
send e:\1.txt 传文件

不要用bat或者shell之类的。谢谢各位啦!!!

[解决办法]
提供一个思路:
先把命令写到一个文件test.txt中,
例如:
open 192.168.1.1
user admin
pass admin
(忘了格式了,你自己百度下吧)
然后保存当前目录,然后system(“ftp -s test.txt").
[解决办法]

C/C++ code
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();    // 执行批处理文件    char szCommandLine[] = "cmd /k CBStudy.cmd";    STARTUPINFO si = { sizeof(si) };    PROCESS_INFORMATION pi;    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;} 

读书人网 >C++

热点推荐