【发布时间】:2017-06-19 15:05:42
【问题描述】:
我正在尝试将文件写入临时文件夹,但没有正确执行。当我稍后在代码中调用它时,它引用了正确的位置,但说它不存在。关于我做错了什么的任何想法?
ofstream fout("%TEMP%\\test.bat");
fout << "cd C:\\Users\\jrowler\\Documents" << endl;
//Some more fout commands to write to bat
fout.close();
wchar_t cmdline[] = L"cmd.exe /C %TEMP%\\test.bat";
if (!CreateProcess(NULL, cmdline, NULL, NULL, false, CREATE_UNICODE_ENVIRONMENT,
(LPVOID)env.c_str(), NULL, &si, &pi))
{
std::cout << GetLastError();
abort();
}
如果我不尝试使用 TEMP 文件夹,一切正常。如果我想把它放在我的桌面上,它工作得很好。任何想法为什么环境变量在创建时无法正常工作,但是在尝试创建进程时,它给了我一个错误,它引用了环境变量指定的正确位置。
【问题讨论】:
-
fstream对 Windows 特定的环境变量扩展一无所知。你会想要获取变量并自己做。 msdn.microsoft.com/en-us/library/windows/desktop/… -
我还能提供什么来回答这个问题吗?
-
不,太棒了!很抱歉延迟接受!