Używając funkcji CreateProcess(...) :
LPCTSTR lpApplicationName = _tcsdup(TEXT("C:\\Windows\\system32\\cmd.exe"));
LPTSTR szCmdline = _tcsdup(TEXT("/c set GODZINA=%time:~0,2% && copy C:\\Temp\\test.txt C:\\Temp\\%GODZINA%.txt")
CreateProcess(lpApplicationName, szCmdline, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
do tworzenia nazw plików wg. aktualnej godziny, okazało sie, że zamiast nazwy 17.txt tworzy mi kopie pliku o nazwie %GODZINA%.txt".
Zmienna GODZINA jest dobrze inicjowana. Poza tym gdy urachamiam batcha lub wpisuje bezposrednio w cmd.exe to jest ok.
Zakładam , że brakuje jakiegoś znaku przed %GODZINA% , tylko nie wiem jakiego. Probowałem z ^ przed znakiem specjalnym % , czyli :
LPTSTR szCmdline = _tcsdup(TEXT("/c set GODZINA=%time:~0,2% && copy C:\\Temp\\test.txt C:\\Temp\\^%GODZINA^%.txt")
ale nie pomaga.
Czy ktos wie jak poradzic sobie z tym problemem?