Блокирование скрипта профиля во время использования файла транскрипции - PullRequest
0 голосов
/ 30 января 2020

Я использую небольшой скрипт в файле профиля для обновления файла расшифровки, когда он становится слишком большим (после заданного числа строк запускается процесс обновления); он запускает копию файла стенограммы, удаляет файл стенограммы и запускает другой файл с тем же именем. Однако при запуске дополнительных экземпляров ISE сценарий запускается снова, и когда ограничение на количество строк в файле стенограммы было достигнуто, что приводит к сообщению об ошибке, в результате чего файл стенограммы не может быть удален как он используется процессом (этот процесс является транскрипцией на главном экземпляре - для других экземпляров не существует транскрипции, кроме той, которая была первоначально открыта в сеансе, но, тем не менее, открытие нового экземпляра дает в верхней части экрана объявление, говорящее что файл расшифровки был запущен). Как я могу сделать выполнение сценария условным, чтобы система не использовала файл расшифровки? Сообщение об ошибке не является такой проблемой, так как это уже предупреждение о том, что файл слишком велик и его можно игнорировать, но было бы лучше, чтобы он не отображался в верхней части экрана при каждом открытии нового экземпляр.

1 Ответ

0 голосов
/ 31 января 2020

Следующее решение не проверено на 100%, и я не могу объяснить соответствующие принципы, но оно работает. Подробнее об этом можно узнать здесь , источник переключателя.
Необходимо только выбрать для переменной "$ filename" путь к вашему файлу стенограммы и вставить свой скрипт для файла. хранение и обновление содержимого во втором поле инструкции if.

$fileName = <path of transcript file>
$file = New-Object -TypeName System.IO.FileInfo -ArgumentList $fileName
$ErrorActionPreference = "SilentlyContinue"
[System.IO.FileStream] $fs = $file.OpenWrite(); 
if (!$?) {} else {$fs.Dispose();<script for file content storage and renewal>  
                 }
...