DOS是单任务的
装载了bat自己就要结束进程
DOS里面不是不可以不过你要在DOS下编译
DOS下我不知道有没有CreateThread或者CreateProcess这样的API
如果没有你可以试试system(const
char
cmdline);
在参数里面传进bat文件的全路径
楼下的孩子,DOS系统不是古老不古老的问题
你说DOS不存在,那我就不明白了,你知不知道x86有一种模式叫实模式?
谁告诉你没DOS的?
哥告诉你哥的电脑上就装了DOS,实体电脑,不是虚拟机!
@echo off & setlocal enabledelayedexpansion
echo please inpt 10 numes:
for /l %%i in (0,1,9) do set /p a%%i=
call :fun
for /l %%i in (0,1,9) do set /p = <nul !a%%i!
goto :eof
:fun
for /l %%j in (0,1,9) do (
for /l %%n in (%%j,1,9) do if !a%%n! lss !a%%j! set t=!a%%n!&set a%%n=!a%%j!&set "a%%j=!t!"
)
如果你的bat里的命令都是一句一行的,没有使用 %%i 之类的,那么用
system(one_line); 一句一句地执行就可以了。
如果 bat里 有循环语句,使用 %%i 之类的 例如
for %%i in () do ren %%i A%%i
就不能使用 system。
----------------
有一个办法可以考虑:
用 C语言 临时写一个 bat文件,立即运行,等几秒删去bat。
#include <stdioh>
#include<stdlibh>
#include<windowsh>
main()
{
FILE fp;
fp=fopen("xbat","w"); // 建bat文件
fprintf(fp,"echo off\n"); //内容
fprintf(fp,"for %%%%i in (k) do ren %%%%i A%%%%i \n"); //内容
fclose(fp);
system("start /wait /b xbat"); //执行 bat
Sleep(2000); // 等2秒
system("erase /F /Q xbat"); // 删去bat
return 0;
}
这个bat 把所有 k 开始的文件名,加一前缀 A
%%%% 写入bat 是 %% 噢
以上就是关于怎么用C语言让bat文件成功在DOS *** 作系统中运行全部的内容,包括:怎么用C语言让bat文件成功在DOS *** 作系统中运行、把c程序转换成bat程序、怎样把bat嵌入C语言等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)