При передаче osascript через .Net CORE возникает синтаксическая ошибка: сюда не может попасть неизвестный токен

1

Следующая команда,

osascript -e 'tell app "terminal" to do script ("idevicesyslog -u UUID | tee 'ios_syslog.txt'")'

(где UUID - это жестко идентифицированный идентификатор устройства) отлично работает в терминале. Он открывает новое окно и запускает скрипт, но когда я передаю его через вызов API .Net CORE, я получаю вышеуказанную синтаксическую ошибку.

Даже просто osascript -e 'tell app "terminal" to do script ("idevicesyslog")'выходит из строя с той же ошибкой.

есть идеи?

MidiGlitch
источник
Попробуйте, osascript -e 'tell application "Terminal" to do shell script "..."'и там, где вы используете одинарные кавычки, 'ios_syslog.txt'вам, возможно, придется их избежать, например, \'ios_syslog.txt\'и я не могу проверить, потому что у меня нет той же среды, что и у вас.
user3439894
Спасибо за предложение, но это не помогло. В конце я использовал обходной путь, как показано выше
MidiGlitch
Обходной путь должен быть ответом, а не редактированием вопроса (и если вам больше не нужно, вы можете принять его)
Марк

Ответы:

0

РАБОТА Вокруг: я решил проблему, поместив вышеупомянутое в Applescript и вызвав скрипт из C #. Имелось ввиду необходимость добавления в проект файла не .Net, который можно редактировать только на Mac (насколько я знаю). Сценарий:

on run argv
    tell application "terminal"
        activate
        do script ("idevicesyslog -u " & item of argv & " | tee '" & item 2 of argv & "'")
    end tell
end run

Сценарий был вызван с использованием System.Diagnostics.Process и передачей osascript.exe и двух аргументов в конструктор ProcessStartInfo.

MidiGlitch
источник