У меня очень странная проблема с выполнением командной строки.Приведенный ниже код работает без проблем:
ShellExecute(NULL, "open", "cmd.exe", "/C ipconfig > file_output.txt", NULL, SW_SHOWNORMAL);
При выполнении вывод ipconfig записывается в файл file_output.txt ", и это именно то, что я хочу. Однако при использовании bcdedit:
ShellExecute(NULL, "open", "cmd.exe", "/C bcdedit > file_output.txt", NULL, SW_SHOWNORMAL);
Файл создан, но в нем ничего нет. Я могу выполнить ту же команду в cmd.exe, что и администратор, и она работает. Я также пробовал:
ShellExecute(NULL, "open", "cmd.exe", "/C bcdedit /enum all > file_output.txt", NULL, SW_SHOWNORMAL);
Ничего с bcdeditработает. Никаких ошибок. Вот несколько других методов, которые я пробовал:
- Использование взамен CreateProcess.
- Использование системы вместо.
- Настройка каталогаC: \ Windows \ System32
- Установка каталога в C: \ Windows \ SysWOW64 \
Опять же, выполнение той же команды в cmd.exe работает, но это не таккажется, работает в моем коде. Я искал весь день, и я не могу найти что-то, что работает. Любые идеи?
Редактировать: После дальнейшей отладки, теперь я вижус помощью команды.
'bcdedit' не распознается каквнутренняя или внешняя команда, работающая программа или пакетный файл.
'C: \ Windows \ System32 \ bcdedit.exe' не распознается как внутренняя или внешняя команда, работающая программа или пакетный файл.
Я перепробовал все 4 метода, перечисленных выше, и, по-видимому, он все еще не может быть распознан как команда.** bcdedit.exe действительно существует в C: \ Windows \ System32 **.