首页 > 编程知识 正文

java代码运行cmd命令,批处理执行cmd命令

时间:2023-05-04 03:07:00 阅读:262775 作者:1921

c/c++代码中执行cmd命令 2016年05月19日 17:04:56 阅读数:10268

代码中执行cmd命令有多重方法:

第一种:可以直接打开对应文件(文件夹),但不能定位到相应文件

::ShellExecute(NULL, _T("open"), "d:CodeSpaceFileRecvmcisendstring.txt", NULL, NULL, SW_SHOWNORMAL);


第二种:可以再打开文件夹的同时定位到相应的文件

::ShellExecute(NULL, L"open", L"explorer.exe", "/select,d:CodeSpaceFileRecvmcisendstring.txt", NULL, SW_SHOWNORMAL);


对于前两种的cmd执行方式,一般是用于打开文件或者链接之类的,另外的一些命令需要用到下面的方法:


第三种:用于直接打开一个可执行文件,并且可以等待其执行完成,适用于单线程

do{
DWORD lResult;
PROCESS_INFORMATION piProcInfo; 
STARTUPINFO siStartInfo = {sizeof(STARTUPINFO)};

if(!CreateProcess(NULL, "uclient.exe /c", NULL, NULL, FALSE, NULL, NULL, NULL, &siStartInfo, &piProcInfo))
break;


WaitForSingleObject(piProcInfo.hProcess, INFINITE);
if(GetExitCodeProcess(piProcInfo.hProcess, &lResult) && lResult != -1 && lResult>0)
{
DebugInfoA("客户端有 %d 个文件可升级最新版", lResult);
int nresult = MessageBox(NULL, "有新版本可以升级,是否立即升级?", "客户端版本升级", MB_OKCANCEL);
if(IDOK == nresult)
{
CreateProcess(NULL, "uclient.exe /u", NULL, NULL, FALSE, NULL, NULL, NULL, &siStartInfo, &piProcInfo);
return 0;
}
}
}while(FALSE);


第四种:用于调用一个外部可执行文件执行相应命令,并且可以等待其执行完成,适用于单线程,其他部分代码同上一种

if(!CreateProcess(NULL, "7za.exe a "d:CodeSpaceFace.7z" -o "d:CodeSpaceFace/*"", NULL, NULL, FALSE, NULL, NULL, NULL, &siStartInfo, &piProcInfo));

if(!CreateProcess(NULL, "7za.exe x "d:CodeSpaceFace.7z" -o "d:CodeSpaceFace"", NULL, NULL, FALSE, NULL, NULL, NULL, &siStartInfo, &piProcInfo));


第五中:system 函数,可以直接执行输入到cmd里面的命令,但是代码中执行过程中会出现黑屏的闪烁,无法隐藏

system(“copy "C:Userss810.png" "d:CodeSpace719950C424FC405CA6139EDFB99F4E08.png"”);


第六种:WinExec 函数(可以直接执行cmd命令以及调用cmd执行命令,并且可以隐藏窗口)

WinExec("cmd.exe /c copy "C:Userss810.png" "d:CodeSpaces893CD.png"", SW_HIDE);

相关用法:

ex1: WinExec("Notepad.exe c:\autoexec.bat",SW_SHOW); 执行 notepad.exe 并正常显示器窗口

ex2: WinExec("Notepad.exe",SW_SHOWMINIMIZED);  执行 notepad.exe 但最小化其窗口 ex3: WinExec("Command.com /c dir c:\",SW_SHOW);  执行 dir C: ,完成后关闭 MSDOS 窗口   ex4: WinExec("Command.com /k dir c:\",SW_SHOW);  执行 dir C: ,完成后不关闭 MSDOS 窗口

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。