cmd вывод нового окна магазина - PullRequest
2 голосов
/ 15 марта 2019

Я хочу открыть новую командную строку, запустить программу и сохранить вывод (который сейчас отображается в командной строке) в лог-файл.

Я использовал эту команду до сих пор:

cmd /c start "window title" "C:\Program Files\app.exe"

обычно я могу использовать

"C:\Program Files\app.exe" >out.txt

, чтобы сохранить то, чтозаписывается в командной строке в файл.Поскольку программа выполняется в другом окне, я пытаюсь правильно настроить вывод.

Зачем мне нужно дополнительное окно?

-> Программа будет вызываться несколько раз.Мне нужна лицензия для этого, я ограничен там.Если программа вызывается в одном и том же окне, после 3-х три раза возникает ошибка, сообщающая мне, что я использую много лицензий одновременно.

С дополнительными окнами открытия и закрытия эта «проблема с лицензией» решена.Но я не могу найти решение для выхода тогда.Lua помечен, так как эта команда встроена в Lua os.execute()

Ответы [ 3 ]

1 голос
/ 15 марта 2019

Вы должны проверить start /? на полный синтаксис команды.Вам нужны следующие элементы:

  • команда start
  • "window title" (может быть "", если вы не хотите указывать)
  • /d "working directory"
  • "command name"
  • "command arguments"

... где указан каждый токен после start.Пример:

start "" /d "C:\Program Files\appdir" "app.exe" ">%userprofile%\Desktop\out.txt"

Используйте структуру ожидаемого аргумента команды start, чтобы передать перенаправление вывода в качестве аргумента.Передайте его в кавычках, чтобы интерпретатор cmd знал, что вы хотите перенаправить вывод app.exe, в отличие от вывода команды start (которая изначально не предоставляет никаких полезных выходных данных).

0 голосов
/ 15 марта 2019

В командной строке Windows содержатся злые правила цитирования: -)
Этот код работает так, как вам нужно:

os.execute([["start "window title" cmd /C ""C:\Program Files\app.exe" > "C:\my logs\log.txt"""]])
0 голосов
/ 15 марта 2019

Полагаю, вы ищете что-то вроде

start "window title" "C:\Program Files\app.exe > out.txt"

Перенаправление находится внутри кавычек, в противном случае будет получен вывод самой команды start (этот вывод пуст).

...