//批量删除指定格式文件,不显示console窗口
void BatchDelFile(int nNum, ...)
{
	va_list argPtr;    
	int i;
	char* pszDelCmd;
	char szCurDir[MAX_PATH];
	char szCmdPath[MAX_PATH];
	SHELLEXECUTEINFO shExecInfo = {0};
	
	pszDelCmd = (char*)malloc((nNum + 2)* MAX_PATH);
	GetCurrentDirectory(MAX_PATH, szCurDir);//获取当前路径
	GetSystemDirectory(szCmdPath, MAX_PATH);//获取cmd路径
	strcat(szCmdPath, "\\cmd.exe");
	sprintf(pszDelCmd, "%s /c del /f /q /s ", szCmdPath);//格式化出命令字符串, 注意加上/c
	va_start(argPtr, nNum);
	for(i = 0; i < nNum; ++i)
	{   
		strcat(pszDelCmd, "\"");
		strcat(pszDelCmd, *(char**)argPtr);
		strcat(pszDelCmd, "\"");
		if (i != nNum - 1)
		{
			strcat(pszDelCmd, " + ");
		}
		va_arg(argPtr, char**);
	}  
        va_end(argPtr);
	shExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
	shExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
	shExecInfo.hwnd = NULL;
	shExecInfo.lpVerb = NULL;
	shExecInfo.lpFile = szCmdPath;//cmd的路径
	shExecInfo.lpParameters = pszDelCmd;//程序参数,参数格式必须保证正确
	shExecInfo.lpDirectory = szCurDir;//如果szFile是相对路径,那个这个参数就会起作用
	shExecInfo.nShow = SW_HIDE;//隐藏cmd窗口
	shExecInfo.hInstApp = NULL;
	ShellExecuteEx(&shExecInfo);
	WaitForSingleObject(shExecInfo.hProcess, INFINITE);//无限等待cmd窗口执行完毕
	free(pszDelCmd);
}
BatchDelFile(2, "*.tcp.txt", "*.udp.txt");//第一个是文件个数,后面依次是文件路径,文件路径可以是相对路径也可以是绝对路径。
文件名数组的版本代码如下:
void BatchDelFile(int nNum, char** pszFiles)
{  
	int i;
	char* pszDelCmd;
	char szCurDir[MAX_PATH];
	char szCmdPath[MAX_PATH];
	SHELLEXECUTEINFO shExecInfo = {0};
	
	pszDelCmd = (char*)malloc((nNum + 2)* MAX_PATH);
	GetCurrentDirectory(MAX_PATH, szCurDir);//获取当前路径
	GetSystemDirectory(szCmdPath, MAX_PATH);//获取cmd路径
	strcat(szCmdPath, "\\cmd.exe");
	sprintf(pszDelCmd, "%s /c del /f /q /s ", szCmdPath);//格式化出命令字符串, 注意加上/c
	
	for(i = 0; i < nNum; ++i)
	{   
		strcat(pszDelCmd, "\"");
		strcat(pszDelCmd, *(pszFiles + i));
		strcat(pszDelCmd, "\"");
		if (i != nNum - 1)
		{
			strcat(pszDelCmd, " + ");
		}
	}
	shExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
	shExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
	shExecInfo.hwnd = NULL;
	shExecInfo.lpVerb = NULL;
	shExecInfo.lpFile = szCmdPath;//cmd的路径
	shExecInfo.lpParameters = pszDelCmd;//程序参数,参数格式必须保证正确
	shExecInfo.lpDirectory = szCurDir;//如果szFile是相对路径,那个这个参数就会起作用
	shExecInfo.nShow = SW_HIDE;//隐藏cmd窗口
	shExecInfo.hInstApp = NULL;
	ShellExecuteEx(&shExecInfo);
	WaitForSingleObject(shExecInfo.hProcess, INFINITE);//无限等待cmd窗口执行完毕
	free(pszDelCmd);
}
调用方法:
char* szFiles[2];
szFiles[0] = "*.tcp.txt";
szFiles[1] = "*.udp.txt";
BatchDelFile(2, szFiles);