假設一個標準配置,答案是否定的,它不是要求。您可以將該批處理文件包含在lpCommandLine
參數中。其餘的參數只是在需要的地方用引號引用批處理文件。
TEST.CMD
@echo off
setlocal enableextensions disabledelayedexpansion
echo %1
echo %~1
echo %2
echo %~2
test.c的
#define _WIN32_WINNT 0x0500
#include <windows.h>
void main(void){
// Spawn process variables
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
ZeroMemory(&pi, sizeof(pi));
CreateProcess(
NULL
, "\"test.cmd\" \"x=1 y=2\" \"x=3 y=4\""
, NULL
, NULL
, TRUE
, 0
, NULL
, NULL
, &si
, &pi
);
WaitForSingleObject(pi.hProcess, INFINITE);
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
};
輸出
W:\>test.exe
"x=1 y=2"
x=1 y=2
"x=3 y=4"
x=3 y=4