Запустите программу в foreach

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

def periodic_task():
    log.msg("periodic task running")
    try:
        x = 10 / 0
    except Exception as error:
        # Here you should at least log the error, exceptions do not should pass silently.
        pass
27
задан abatishchev 1 December 2013 в 00:02
поделиться

4 ответа

ls | %{C:\Working\tools\custom-tool.exe $_}

Поскольку каждый объект снижается конвейер, инструмент будет выполнен против него. Помещение кавычек вокруг командной строки заставляет это быть... жалом! Локальная переменная "$ _" это затем, вероятно, не знает, что сделать с так рвотами с ошибкой.

33
ответ дан slipsec 28 November 2019 в 04:16
поделиться

При тихой необходимости в кавычках вокруг пути команды (скажите, если у Вас есть пробелы), просто сделайте это как это:

ls | % { &"C:\Working\tools\custom-tool.exe" $_.FullName }

Заметьте, что использование и перед строкой вынуждает PowerShell интерпретировать его как команду и не строку.

44
ответ дан tomasr 28 November 2019 в 04:16
поделиться

Я держу пари, что Вашему инструменту нужен полный путь. $ _ является каждым объектом файла, который проникает через конвейер. Вероятно, необходимо использовать выражение как это:

ls | %{C:\Working\tools\custom-tool.exe $_.fullname}
6
ответ дан abatishchev 28 November 2019 в 04:16
поделиться

И Jeffrery Hicks и slipsec корректны. Янки двойные кавычки прочь.

$ _ или $ _ .fullname работали в моем сценарии тестирования (ниже). YMMV с Вашим инструментом пользователя.

gci | % { c:\windows\notepad.exe $_.fullname }

или

gci | % { c:\windows\notepad.exe $_ }
2
ответ дан EdgeVB 28 November 2019 в 04:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: